這很簡單,並保存一些臨時數組,只是將數組重新解釋爲真實數組。
節能:
numpy.savetxt('outfile.txt', array.view(float))
加載:
array = numpy.loadtxt('outfile.txt').view(complex)
如果您希望對文件中的同一行實部和虛部,可以使用
numpy.savetxt('outfile.txt', array.view(float).reshape(-1, 2))
或
array = numpy.loadtxt('outfile.txt').view(complex).reshape(-1)
。
(請注意,無論是view()
也不reshape()
複製陣列 - 它只是重新解釋以不同的方式相同的數據。)從這個問題提問者
附錄:
如果你想保存多在同一個文件一個複雜的陣列,你可以做到這一點,像這樣:
numpy.savetxt('outfile.txt', numpy.column_stack([
array1.view(float).reshape(-1, 2),
array2.view(float).reshape(-1, 2),
]))
array1, array2 = numpy.loadtxt('outfile.txt', unpack=True).view(complex)
整形是必要的,因爲numpy.view()
不在分步陣列上運行。
非常好!短而優雅。 – ptomato