簡體   English   中英

Numpy 數組 numpy arrays

[英]Numpy array of numpy arrays

當我創建相等長度的子列表列表的 numy 數組時,它會隱式將其轉換為(len(list), len(sub_list)) 2d 數組:

>>> np.array([[1,2], [1,2]],dtype=object).shape
(2, 2)

但是當我傳遞可變長度子列表時,它會創建一個長度為len(list)的向量:

>>> np.array([[1,2], [1,2,3]],dtype=object).shape
(2,)

當子列表長度相同時(即使第一種情況與第二種情況類似),我如何獲得向量 output ?

您可以創建所需大小的對象數組,然后像這樣設置元素:

elements = [np.array([1,2]), np.array([1,2])]

arr = np.empty(len(elements), dtype='object')
arr[:] = elements

但是,如果您嘗試使用相同長度的數組/列表列表直接轉換為數組,numpy 將隱式將其轉換為多維數組。

在這里,您 go...使用dtype=np.ndarray而不是 dtype dtype=object創建。

下面的簡單示例(包含 5 個元素):

In [1]: arr = np.empty((5,), dtype=np.ndarray)
In [2]: arr.shape
Out[2]: (5,)
    
In [3]: arr[0]=np.array([1,2])
In [4]: arr[1]=np.array([2,3])
In [5]: arr[2]=np.array([1,2,3,4])
In [6]: arr
Out[6]: 
array([array([1, 2]), array([2, 3]), array([1, 2, 3, 4]), None, None],
      dtype=object)
np.array([[1,2], [1,2]],dtype=object)[0].shape

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM