这很简单,并保存一些临时数组,只是将数组重新解释为真实数组。
节能:
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