簡體   English   中英

從 Python 中的 numpy ndarray 獲取列表?

[英]Get a list from numpy ndarray in Python?

我這里有一個 numpy.ndarray,我試圖將它轉換為一個列表。

>>> a=np.array([[[0.7]], [[0.3]], [[0.5]]])

我正在為此使用 hstack。 但是,我得到了一個列表列表。 我怎樣才能得到一個列表? 我期待得到[0.7, 0.3, 0.5]

>>> b = np.hstack(a)
>>> b
array([[0.7, 0.3, 0.5]])

你明白你擁有的是什么嗎?

In [46]: a=np.array([[[0.7]], [[0.3]], [[0.5]]])    
In [47]: a
Out[47]: 
array([[[0.7]],

       [[0.3]],

       [[0.5]]])    
In [48]: a.shape
Out[48]: (3, 1, 1)

那是一個 3d 數組 - 計算 []

您可以使用以下方法將其轉換為 1d:

In [49]: a.ravel()
Out[49]: array([0.7, 0.3, 0.5])

tolist將數組轉換為列表:

In [50]: a.ravel().tolist()
Out[50]: [0.7, 0.3, 0.5]

您也可以使用a[:,0,0] 如果您使用hstack ,它會部分變平 - 但不會一直到 1d。

In [51]: np.hstack(a)
Out[51]: array([[0.7, 0.3, 0.5]])
In [52]: _.shape
Out[52]: (1, 3)
In [53]: np.hstack(a)[0]
Out[53]: array([0.7, 0.3, 0.5])

或者,可以使用numpy.ndarray.flatten

a.flatten().tolist()

還有另一種可能性:

a.reshape(-1).tolist()

輸出:

[0.7, 0.3, 0.5]

暫無
暫無

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

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