我正在讀取一個 csv 檔案來 dict。我希望鍵是字串,值是浮點陣列,如下所示:
"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
但我得到“無法將字串轉換為浮點數”,為什么?謝謝!
uj5u.com熱心網友回復:
我認為問題在于,在 liney = np.asarray(x, dtype=np.float32)中,變數x是一個長度為 one 的陣列,其中包含多個空格分隔的子字串,每個子字串都可以轉換為浮點數。但是,字串本身不能轉換為浮點數。
您可以嘗試用以下代碼替換該行:
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)}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488941.html
