我正在使用从我的csv文件中获取值的软件包。如果我打印出结果,则会得到['0.12' '0.23']
。我检查了类型,即<class 'numpy.ndarray'>
,我想将其转换为类似[0.12, 0.23]
的numpy数组。
我尝试了np.asarray(variabel)
,但未能解决问题。
答案 0 :(得分:0)
解决方案
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)
答案 1 :(得分:0)
了解如何读取csv
可能会有所帮助。但是出于某种原因,它似乎创建了一个带有字符串numpy
的{{1}}数组:
dtype
这种数组的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
我们将其称为numpy数组,但从技术上讲,它属于In [109]: data.tolist()
Out[109]: ['0.12', '0.23']
类
numpy.ndarray
可以使用以下方法将其转换为浮点数数组:
In [110]: type(data)
Out[110]: numpy.ndarray
它仍然是In [111]: data.astype(float)
Out[111]: array([0.12, 0.23])
,只是ndarray
不同。您可能需要在dtype
文档中阅读有关numpy
的更多信息。
错误:
如果要使用它进行计算,则会给我一个错误TypeError:只有大小为1的数组可以转换为Python标量
有不同的来源。 dtype
有2个元素。您没有显示生成此错误的代码,但通常在绘制调用时会看到此错误。该参数应该是单个数字(通常是整数),其中,即使您的数组(即使是数字data
)也是两个数字。