簡體   English   中英

Python如何轉換[&#39;0.12&#39;&#39;0.23&#39;] <class 'numpy.ndarray'> 到一個普通的numpy數組

[英]Python How to convert ['0.12' '0.23'] <class 'numpy.ndarray'> to a normal numpy array

我正在使用為我從csv文件中獲取值的軟件包。 如果打印出結果,則會得到['0.12' '0.23'] 我檢查了類型,它是<class 'numpy.ndarray'>我想將其轉換為類似[0.12, 0.23] <class 'numpy.ndarray'>的numpy數組。 我嘗試了np.asarray(variabel)但沒有解決問題。

import numpy as np
array = array.astype(np.float)


# If you are just initializing array you can do this
ar= np.array(your_list,dtype=np.float)

了解如何讀取csv可能會有所幫助。 但是出於某種原因,它似乎創建了一個帶有字符串dtypenumpy數組:

In [106]: data = np.array(['0.12', '0.23'])
In [107]: data
Out[107]: array(['0.12', '0.23'], dtype='<U4')
In [108]: print(data)
['0.12' '0.23']

這樣的數組的str格式省略了逗號, repr顯示將其保留。

列表等效項也顯示為逗號:

In [109]: data.tolist()
Out[109]: ['0.12', '0.23']

我們將其稱為numpy數組,但從技術上講,它屬於numpy.ndarray

In [110]: type(data)
Out[110]: numpy.ndarray

可以使用以下命令將其轉換為浮點數組:

In [111]: data.astype(float)
Out[111]: array([0.12, 0.23])

它仍然是一個ndarray ,只是dtype是不同的。 您可能需要在有關dtypenumpy文檔中閱讀更多內容。

錯誤:

如果我想用它來計算,則會給我一個錯誤TypeError:只有大小為1的數組可以轉換為Python標量

有不同的來源。 data有2個元素。 您沒有顯示生成此錯誤的代碼,但通常在繪制調用時會看到此錯誤。 該參數應該是單個數字(通常是整數),其中,即使您的數組(即使使用數字dtype )也都是兩個數字。

暫無
暫無

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

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