54

我正在尝试做一些可能非常简单的事情。我想使用'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
4

4 回答 4

65

使用numpy.c_[]

np.savetxt('myfile.txt', np.c_[x,y,z])
于 2013-03-04T01:12:12.633 回答
49

使用numpy.transpose()

np.savetxt('myfile.txt', np.transpose([x,y,z]))

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

于 2013-08-26T23:42:36.460 回答
18

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

np.savetxt('myfile.txt', np.column_stack([x,y,z]))
于 2017-07-05T19:12:19.047 回答
5

使用邮编:

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

对于 python3 列表+zip:

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

要了解解决方法,请参见此处:How can I get the "old" zip() in Python3? https://github.com/numpy/numpy/issues/5951

于 2016-08-05T11:18:30.080 回答