在數據分析和科學計算中,NumPy是最常用的Python庫之一,它提供了高效的數組操作和數學函數,可大大加速數據處理的速度和準確性。NumPy中的數組(ndarray)是Python中最常用的數據結構之一,但在某些情況下,我們需要將其轉換為Python中的標準列表。這篇文章將詳細介紹如何使用NumPy將數組轉換為Python列表。
一、使用tolist()方法轉換
NumPy數組可以使用tolist()方法將其轉換為Python列表。
import numpy as np arr = np.array([1, 2, 3, 4, 5]) list_arr = arr.tolist() print(list_arr)
輸出結果為:
[1, 2, 3, 4, 5]
同樣,對於多維數組,tolist()方法也可以正確地將其轉換為Python列表。
arr = np.array([[1, 2], [3, 4]]) list_arr = arr.tolist() print(list_arr)
輸出結果為:
[[1, 2], [3, 4]]
二、使用nditer()方法轉換
另一種將NumPy數組轉換為Python列表的方法是使用nditer()方法遍曆數組並將其元素添加到Python列表中。
arr = np.array([1, 2, 3, 4, 5]) list_arr = [] for x in np.nditer(arr): list_arr.append(x) print(list_arr)
輸出結果為:
[1, 2, 3, 4, 5]
同樣,對於多維數組,我們可以使用嵌套的for循環遍歷並將其轉換為Python列表。
arr = np.array([[1, 2], [3, 4]]) list_arr = [] for x in np.nditer(arr): list_arr.append(x) print(list_arr)
輸出結果為:
[1, 2, 3, 4]
上述結果是將多維數組展開成一維數組後再轉換為Python列表。如果我們想要保留多維數組的結構,可以稍微修改一下代碼。
arr = np.array([[1, 2], [3, 4]]) list_arr = [] for row in arr: row_list = [] for x in row: row_list.append(x) list_arr.append(row_list) print(list_arr)
輸出結果為:
[[1, 2], [3, 4]]
三、使用tolist()方法和tolist()函數的比較
前面介紹了使用tolist()方法將NumPy數組轉換為Python列表,但是NumPy還提供了另一種tolist()函數。那麼這兩種方法有什麼區別呢?
將ndarray對象轉換為Python列表的函數是tolist()函數,它與數組的方法tolist()不同。方法tolist()只適用於ndarray對象,而tolist()函數適用於任何可迭代對象。
看下面的代碼:
arr = np.array([1, 2, 3, 4, 5]) tuple_arr = (1, 2, 3, 4, 5) list_arr_1 = arr.tolist() list_arr_2 = list(tuple_arr) print(list_arr_1) print(list_arr_2)
輸出結果為:
[1, 2, 3, 4, 5] [1, 2, 3, 4, 5]
使用tolist()函數可以將任何可迭代對象轉換為Python列表。
set_arr = {1, 2, 3, 4, 5} list_arr = list(set_arr) print(list_arr)
輸出結果為:
[1, 2, 3, 4, 5]
總之,使用NumPy將數組轉換為Python列表有多種方式,可以根據實際需求選擇適合的方法。方法1和方法2適用於將ndarray對象轉換為Python列表,而方法3適用於將任何可迭代對象轉換為Python列表。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/294038.html