配列を実際の配列として再解釈する方が簡単で、いくつかの一時的な配列を節約できます。
保存:
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()
はストライドアレイでは動作しないため、再形成が必要です。