将numpy字符串数组转换为numpy浮点数组



我正在读取一个csv文件来字典。我希望键是字符串,值是浮点数的数组,像这样:

"A":array[5.19494526e-02  1.17357977e-01  5.19494526e-02]

但是我得到了这个:

"A":array['5.19494526e-02  1.17357977e-01  5.19494526e-02'].

试图运行这段代码来修复它:

a=pd.read_csv('Encoded.csv', header=None, index_col=0, squeeze=True).to_dict()
encoded={}
for key, value in a.items():
x = np.array(value)
y = np.asarray(x, dtype=np.float32)
encoded[key]=y
print(encoded)
return encoded

,但我得到"不能转换字符串为浮点",为什么?谢谢!

我认为问题是在y = np.asarray(x, dtype=np.float32)行中,变量x是长度为1的数组,其中包含多个空格分隔的子字符串,每个子字符串都可以转换为浮点数。但是,字符串本身不能转换为float。

你可以试着把那一行替换成:

y = np.asarray(x[0].split(), dtype=np.float32)

输入

{'A': array(['5.19494526e-02  1.17357977e-01  5.19494526e-02'], dtype='<U46')}

输出
{'A': array([0.05194945, 0.11735798, 0.05194945], dtype=float32)}

相关内容

  • 没有找到相关文章

最新更新