Ответ 1
Используйте numpy.c_[]
:
np.savetxt('myfile.txt', np.c_[x,y,z])
Я пытаюсь сделать что-то, что очень просто. Я хотел бы сохранить три массива в файл в виде столбцов, используя "np.savetxt". Когда я попробую этот
x = [1,2,3,4]
y = [5,6,7,8]
z = [9,10,11,12]
np.savetxt('myfile.txt', (x,y,z), fmt='%.18g', delimiter=' ', newline=os.linesep)
Массивы сохраняются следующим образом
1 2 3 4
5 6 7 8
9 10 11 12
Но то, что я назвал, это
1 5 9
2 6 10
3 7 11
4 8 12
Используйте numpy.c_[]
:
np.savetxt('myfile.txt', np.c_[x,y,z])
Используйте numpy.transpose()
:
np.savetxt('myfile.txt', np.transpose([x,y,z]))
Я нахожу это более интуитивным, чем использование np.c_[]
.
Я нахожу numpy.column_stack()
наиболее интуитивно понятным:
np.savetxt('myfile.txt', np.column_stack([x,y,z]))
Используйте zip:
np.savetxt('myfile2.txt', zip(x,y,z), fmt='%.18g')
Для списка python3 + zip:
np.savetxt('myfile.txt', list(zip(x,y,z)), fmt='%.18g')
Чтобы понять обходное решение, см. здесь: Как я могу получить "old" zip() в Python3? и https://github.com/numpy/numpy/issues/5951.