我有我的代码
import numpy as np
a1=np.empty(10)
a1.fill(1900)
a2=np.empty(10)
a2.fill(3100)
a3=np.empty(10)
a3.fill(3600)
with open('homes.txt', 'w') as f:
for i in a1:
for j in a2:
for k in a3:
np.savetxt(f, i, j,k)
我想将数组写入文本文件,如此
1900. 3100. 3600.
1900. 3100. 3600.
1900. 3100. 3600.
但终端给了我
Traceback (most recent call last):
File "m84.py", line 16, in <module>
np.savetxt(f, i, j,k)
File "/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 1034, in savetxt
ncol = X.shape[1]
IndexError: tuple index out of range
如果我的想法是错误的,那么有人会提出其他解决方案。
答案 0 :(得分:1)
您可以通过正常写入文件来完成此操作:
with open('homes.txt', 'w') as f:
for i in a1:
for j in a2:
for k in a3:
f.write("%f %f %f\n"%(i,j,k))
但是,我怀疑你并不是真的想要这样做,因为这会打印1000行(因为嵌套循环)。如果您只想在一个文件中编写数组,一旦您可以使用savetxt
编写每个值,并且您不需要将它放在循环中。它可以一次写一个完整的数组,所以你可以这样做:
a = np.empty(shape = (10,3))
a[:,0].fill(1900)
a[:,1].fill(3100)
a[:,2].fill(3600)
np.savetxt("homes.txt",a)