一、基本概念
ndarray是NumPy中最關鍵的數據類型之一,它被用來存儲同類型的多維數組。在NumPy中,一個維度(dimensions)又稱為軸(axes),軸的數量稱為秩(rank)。一個ndarray對象由元素(element),數據類型(dtype)以及每個軸的大小(shape)組成,它是一個由同類型數據組成的多維數組。而list則是Python語言中最常用的數據類型之一,它可以存儲不同類型的元素,但是在Python中沒有維度和形狀的概念。因此,在實際的編程中,我們需要不斷地在ndarray和list之間進行轉換。
二、ndarray轉列表
在NumPy中,使用tolist()方法可以將ndarray對象轉換為Python內置的列表類型list。該方法可以接受一個參數,即keepdims參數,當keepdims為True時,ndarray的shape會保留。下面是具體的代碼示例:
import numpy as np
arr = np.array([1, 2, 3])
l = arr.tolist()
print(l)
上述代碼中,我們使用NumPy創建了一個一維的ndarray對象arr,然後使用tolist()方法將其轉換為列表類型list,並最終輸出轉換後的結果[1, 2, 3]。值得注意的是,這裡的ndarray是一維的,如果是多維的,則需要進行多次轉換,比如:
import numpy as np
arr = np.array([[1, 2], [3, 4]])
l = arr.tolist()
print(l)
上述代碼中,我們使用NumPy創建了一個二維的ndarray對象arr,然後使用tolist()方法將其轉換為列表類型list,並最終輸出轉換後的結果[[1, 2], [3, 4]]。需要注意的是,這裡的ndarray是二維的,因此tolist()方法只能將其轉換為一個嵌套列表。
三、列錶轉ndarray
在NumPy中,使用array()方法可以將列表類型list轉換為ndarray對象。下面是具體的代碼示例:
import numpy as np
l = [1, 2, 3]
arr = np.array(l)
print(arr)
上述代碼中,我們使用Python內置的列表類型創建一個列表l,然後使用NumPy的array()方法將其轉換為ndarray對象arr,並最終輸出轉換後的結果[1 2 3]。值得注意的是,當列表中的元素類型不一致時,array()方法會嘗試將其轉換為同一類型,如下所示:
import numpy as np
l = [1, 2, 3, '4']
arr = np.array(l)
print(arr)
上述代碼中,我們創建了一個列表l,其中包含了不同類型的元素,包括數字和字符串。然後使用array()方法將其轉換為ndarray對象arr,並最終輸出轉換後的結果[‘1’ ‘2’ ‘3’ ‘4’]。由於ndarray只能存儲同類型的數據,因此array()方法會將列表中的元素自動轉換為字符串類型。
四、總結
本文從基本概念和轉換方法兩個方面詳細闡述了ndarray和list之間的相互轉換。在實際編程中,我們需要根據具體要求自行選擇合適的方法進行轉換。需要注意的是,在轉換的過程中需要注意維度、形狀、數據類型等方面的問題,以避免出現意料之外的錯誤。
原創文章,作者:GDDJ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147482.html