我嘗試編寫 ML 程序,但在從 csv 擴展數據集中讀取復雜數據時遇到問題 from numpy import genfromtxt, savetxt import numpy as np from keras.models import Sequential from keras.layers import Dense # load the dataset dataset = genfromtxt("C:/Users/username/Desktop/dataset/snr_10_tau_09/clear.csv", dtype=complex ,delimiter=",") # split into input (X) and output (y) variables print(dataset[:])我的輸出是[[ 1.+0.j 1.+0.j nan+0.j nan+0.j nan+0.j 1.+0.j][ 1.+0.j 1.+0.j nan+0.j nan+0.j nan+0.j 1.+0.j][ 1.+0.j 1.+0.j nan+0.j nan+0.j nan+0.j 1.+0.j]...[nan+0.j nan+0.j nan+0.j nan+0.j nan+0.j nan+0.j]]我的數據的第一個原始示例:1,1,-0.0681107934958098 - 0.321707498751689j,0.000400898877777433 + 0.00114494815465579j,1.14287673226517 - 0.0363472573808049j,1我不明白我的錯誤在哪里,在我的數據還是我的代碼中?當我嘗試打印我的數據時,它顯示“nan+0.j”我無法正確修復這部分。謝謝。
1 回答

紅顏莎娜
TA貢獻1842條經驗 獲得超13個贊
您可以為所有列指定轉換器(有 6 列,因此您需要那么多轉換器函數):
np.genfromtxt(
your_file_name,
delimiter=',',
dtype=np.complex,
converters={k: lambda x: np.complex(x.replace(b' ', b'').decode()) for k in range(5)}
)
array([ 1.00000000e+00+0.j , 1.00000000e+00+0.j ,
-6.81107935e-02-0.3217075j , 4.00898878e-04+0.00114495j,
1.14287673e+00-0.03634726j, 1.00000000e+00+0.j ])
添加回答
舉報
0/150
提交
取消