使用numpy.savetxt时的值错误

时间:2014-08-23 10:34:20

标签: python numpy

我想将每个numpy数组(A,B和C)保存为文本文件中的列,由空格分隔:

import numpy as np

A = np.array([5,7,8912,44])

B = np.array([5.7,7.45,8912.43,44.99])

C = np.array([15.7,17.45,18912.143,144.99])

np.savetxt('test.txt', (A, B, C), fmt='%s %s %s')

但我收到了以下错误:

ValueError:fmt%格式错误:%s%s%s

如何解决?

1 个答案:

答案 0 :(得分:6)

np.savetxt('/tmp/test.txt', np.column_stack((A, B, C)), fmt='%s %s %s')

产量

5.0 5.7 15.7
7.0 7.45 17.45
8912.0 8912.43 18912.143
44.0 44.99 144.99

请注意,fmt='%s'会产生相同的结果。


如果您尝试

np.savetxt('/tmp/test.txt', (A, B, C))

你会看到NumPy正在一个单独的线上写入每个1-D阵列 - 即水平。由于fmt='%s %s %s'用作每行的格式,因此每个行都有4个值,因此引发了错误。

我们可以通过将2-D数组np.column_stack((A, B, C))传递给np.savetxt来解决这个问题。