使用np.savetxt将数组保存为列

Str*_*247 39 python numpy

我正在尝试做一些很可能非常简单的事情.我想使用'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)
Run Code Online (Sandbox Code Playgroud)

数组保存如下

1 2 3 4
5 6 7 8
9 10 11 12
Run Code Online (Sandbox Code Playgroud)

但我所知道的是这个

1 5 9
2 6 10
3 7 11
4 8 12
Run Code Online (Sandbox Code Playgroud)

HYR*_*YRY 51

用途numpy.c_[]:

np.savetxt('myfile.txt', np.c_[x,y,z])
Run Code Online (Sandbox Code Playgroud)


Ham*_*mid 36

用途numpy.transpose():

np.savetxt('myfile.txt', np.transpose([x,y,z]))
Run Code Online (Sandbox Code Playgroud)

我发现这比使用更直观np.c_[].


小智 10

我觉得numpy.column_stack()最直观:

np.savetxt('myfile.txt', np.column_stack([x,y,z]))
Run Code Online (Sandbox Code Playgroud)


小智 5

使用邮编:

np.savetxt('myfile2.txt', zip(x,y,z), fmt='%.18g')

对于python3 list + zip:

np.savetxt('myfile.txt', list(zip(x,y,z)), fmt='%.18g')

要了解解决方法,请参见此处:如何在Python3中获取“旧的” zip()?https://github.com/numpy/numpy/issues/5951