Проще и сохраняет несколько временных массивов, просто переосмысливая массив как реальный массив.
Сохранение:
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()
не работает с пошаговыми массивами.