它更容易并保存一些临时数组以将数组重新解释为真正的数组。
保存:
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()
不对跨步数组进行操作。