![](/img/trans.png)
[英]Converting numpy array which elements are numpy arrays to a list of numpy arrays
[英]convert a list of numpy arrays into a numpy array in which elements are numpy arrays
Python 代碼將 numpy arrays 的列表轉換為具有 numpy arrays 作為其元素的 numpy 數組?
我有一個 arrays 的列表如下:
my_list
Output:
[array([1,2,3]),
array(['a', 'b','c]),
array(['text1', 'text2', 'text3'])
]
使用 np.asarray() 將元素轉換為如下所示的列表:
my_array = np.asarray(my_list)
my_array 看起來像:
array([[1,2,3],['a', 'b','c], ['text1', 'text2', 'text3']])
我要的那種output:
array([array([1,2,3]),array(['a', 'b','c]),array(['text1', 'text2', 'text3'])])
有人可以幫我處理代碼嗎?
In [173]: alist = [np.array([1,2,3]),
...: np.array(['a', 'b','c']),
...: np.array(['text1', 'text2', 'text3'])
...: ]
In [174]: alist
Out[174]:
[array([1, 2, 3]),
array(['a', 'b', 'c'], dtype='<U1'),
array(['text1', 'text2', 'text3'], dtype='<U5')]
In [175]: np.array(alist)
Out[175]:
array([['1', '2', '3'],
['a', 'b', 'c'],
['text1', 'text2', 'text3']], dtype='<U21')
np.array
嘗試制作盡可能高的多維數組。 同樣大小的3個arrays可以拼成一個(3,3)。
為避免這種情況,我們必須創建一個具有所需形狀和數據類型的目標數組,並從列表中分配值:
In [178]: arr = np.empty(3, object)
In [179]: arr[:] = alist
In [180]: arr
Out[180]:
array([array([1, 2, 3]), array(['a', 'b', 'c'], dtype='<U1'),
array(['text1', 'text2', 'text3'], dtype='<U5')], dtype=object)
如果列表包含不同大小的 arrays(或其他對象), np.array
回退到制作這些項目的 object dtype 數組。 但請注意警告,並記住這是一個回退選項,正如您所發現的,這不是默認行為。
In [181]: alist.append([1,2])
In [182]: np.array(alist)
<ipython-input-182-7512d762195a>:1: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.
np.array(alist)
Out[182]:
array([array([1, 2, 3]), array(['a', 'b', 'c'], dtype='<U1'),
array(['text1', 'text2', 'text3'], dtype='<U5'), list([1, 2])],
dtype=object)
並重復我的評論 - 為什么你想要一個 arrays 的數組? 與原始列表相比,它有什么優勢?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.