[英]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.