在 Python 中將 NumPy 陣列轉換為列表

Manav Narula 2023年10月10日
  1. 使用 tolist() 方法將一個 NumPy 陣列轉換為列表
  2. 使用 for 迴圈將 Python 中的 NumPy 陣列轉換為列表
在 Python 中將 NumPy 陣列轉換為列表

列表和陣列是 Python 中兩個最基本且最常用的集合物件。

它們都是可變的,用於以通用名稱儲存元素的集合,並且每個元素都有可用於訪問它的特定位置。

但是,有一些顯著差異。列表已經在 Python 中內建,而對於陣列,我們需要匯入 arraysNumPy 模組,並在使用它們之前宣告陣列。陣列還可以更有效地將資料儲存在記憶體中,並被廣泛用於數學運算。

在本教程中,我們將把一個 numpy 陣列轉換為一個列表。

使用 tolist() 方法將一個 NumPy 陣列轉換為列表

NumPy 陣列的 tolist() 方法可以將 NumPy 陣列轉換為列表。

例如,

import numpy as np

oned = np.array([[1, 2, 3]])
twod = np.array([[1, 2, 3], [4, 5, 6]])

print(oned.tolist())
print(twod.tolist())

輸出:

[[1, 2, 3]]
[[1, 2, 3], [4, 5, 6]]

請注意,此方法將整個陣列視為一個元素。這就是為什麼當我們將其與二維陣列一起使用時,它會返回列表列表。

為了避免這種情況,我們可以將 tolist()flatten()ravel() 方法一起使用,它們可以將 N-D 陣列轉換為線性一維陣列。這兩種方法執行相同的功能。不同之處在於 ravel() 方法返回陣列的參考檢視並影響原始陣列,而 flatten() 方法對陣列的副本起作用。因此,ravel() 函式被認為速度更快,佔用的記憶體更少。

以下程式碼顯示了這些函式的用法。

import numpy as np

oned = np.array([1, 2, 3])
twod = np.array([[1, 2, 3], [4, 5, 6]])

print(oned.flatten().tolist())
print(twod.flatten().tolist())


print(oned.ravel().tolist())
print(twod.ravel().tolist())

輸出:

[1, 2, 3]
[1, 2, 3, 4, 5, 6]
[1, 2, 3]
[1, 2, 3, 4, 5, 6]

使用 for 迴圈將 Python 中的 NumPy 陣列轉換為列表

對於那些剛接觸程式設計或想要定製最終列表的人來說,這只是一種基本方法。我們遍歷一個陣列,並將每個元素分別附加到一個空列表中。以下程式碼實現了這一點。

import numpy as np

arr = np.array([1, 2, 3])
lst = []

for x in arr:
    lst.append(x)

print(lst)

輸出:

[1, 2, 3]
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python Array