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

时间:2013-03-04 00:48:26

标签: 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)

数组像这样保存

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 个答案:

答案 0 :(得分:44)

使用numpy.c_[]

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

答案 1 :(得分:34)

使用numpy.transpose()

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

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

答案 2 :(得分:7)

我发现numpy.column_stack()最直观:

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

答案 3 :(得分:4)

使用zip:

for col in types[types=='unicode'].index: df[col] = df[col].apply(lambda x: x.encode('utf-8').strip())

对于python3 list + zip:

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

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