0

有人可以解释一下吗?

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))
4

5 回答 5

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)
于 2013-04-29T09:49:18.950 回答
2

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

于 2013-04-29T09:49:34.253 回答
1

更快的方法是使用 open with

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))

使用大型阵列会更快

于 2016-07-22T07:56:31.513 回答
0

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

于 2013-04-29T09:51:37.513 回答
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)))
于 2013-04-29T10:15:42.943 回答