savetxt只保存最后一个循环数据

时间:2013-04-29 09:45:53

标签: python numpy

有人可以解释一下吗?

import numpy

a = ([1,2,3,45])
b = ([6,7,8,9,10])
numpy.savetxt('test.txt',(a,b))

此脚本可以很好地保存数据。但是,当我通过循环运行它时,它可以打印所有但不能全部保存。为什么?

import numpy

a = ([1,2,3,4,5])
b = ([6,7,8,9,10])
for i,j in zip(a,b):
    print i,j
    numpy.savetxt('test.txt',(i,j))

5 个答案:

答案 0 :(得分:4)

每次拨打numpy.savetext()时都会覆盖以前的数据。

使用临时缓冲区数组的解决方案:

import numpy

a = ([1,2,3,4,5])
b = ([6,7,8,9,10])

out = []

for i,j in zip(a,b):
   print i,j
   out.append( (i,j) )

numpy.savetxt('test.txt',out)

答案 1 :(得分:2)

numpy.savetxt将覆盖以前写入的文件,因此您只能获得上次迭代的结果。

答案 2 :(得分:0)

你应该append(i,j)而不是覆盖以前的

答案 3 :(得分:0)

import numpy as np

a = np.array([1,2,3,4,5])
b = np.array([6,7,8,9,10])

np.savetxt('test.txt', np.column_stack((a, b)))

答案 4 :(得分:0)

更快捷的方法是使用

打开
import numpy

a = ([1,2,3,4,5])
b = ([6,7,8,9,10])

with open('test.txt','wb') as ftext:  #Wb if you want to create a new one,
    for i,j in zip(a,b):              #ab if you want to appen it. Her it's wb
        print i,j
        numpy.savetxt(ftext,(i,j))

使用大型数组

会更快