我想将每个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
如何解决?
答案 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
来解决这个问题。