3
我需要編寫和讀取複數。我想用numpy.savetxt
和numpy.loadtxt
這樣做。由於我寫的代碼非常大,我創建了一個測試文件來嘗試寫入和讀取複數。使用numpy.savetxt和numpy.loadtxt寫入和讀取複數
到目前爲止,我已經能夠使用numpy.savetxt
編寫複數。代碼如下:
import numpy
d1 = -0.240921619563 - 0.0303165074169j
d2 = -0.340921619563 - 0.0403165074169j
d3 = -0.440921619563 - 0.0503165074169j
d4 = -0.540921619563 - 0.0603165074169j
array = numpy.array([d1, d2, d3, d4])
save = open("test.dat", "w")
numpy.savetxt(save, array.reshape(1, array.shape[0]), newline = "\r\n", fmt = "%.10f")
save.close()
這給出了以下的輸出:
(-0.2409216196+-0.0303165074j) (-0.3409216196+-0.0403165074j) (-0.4409216196+-0.0503165074j) (-0.5409216196+-0.0603165074j)
一切,我現在希望能夠做的是實際讀取/加載數據。該腳本我有是:
import numpy
d = numpy.loadtxt("test.dat")
這段代碼是不夠的,我目前無法加載數據。我的問題與this one類似。但是,通過手動將+-
替換爲-
,我仍然無法加載數據。我認爲解決方案在於numpy.loadtxt
的dtype
選項。儘管如此,我還是無法弄清楚。
非常感謝您的幫助!
看看這有助於:http://stackoverflow.com/questions/21012484/how-to-save-a-complex- matrix-in-a-file/ –
爲什麼要使用'loadtxt'和'savetxt'而不僅僅是'load'和'save'或'tofile'和'fromfile'是否有特定的原因? – ebarr
這不是一個在numpy中的錯誤嗎?在我看來'savetxt'應該提供一個格式正確的複數...... –