我正在读取一个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)}