将多个numpy数组写入文件
我知道怎么用numpy.savetxt把一个数组写入文件。那我怎么才能把多个数组写到同一个文件里呢?
其实我想对一列数字进行一些数学运算,然后把旧的那一列替换成修改过的数字。我了解到最简单的方法就是完全写一个新文件,把修改过的数字放进去,然后把文件里其他的数字“复制粘贴”过来。
任何帮助都非常感谢。
谢谢!
3 个回答
1
import numpy
list1 = [1, 2, 3, 4]
list2 = [0.45, 0.98, 0.89, 0.21]
dat = numpy.array([list1, list2])
dat = dat.T
numpy.savetxt('data.txt', dat, delimiter = ',')
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。
6
如果你想把多个数组写入一个文件,以便以后使用,可以看看 numpy.savez。
不过,从你的描述来看,似乎你是想处理一个分隔文本文件中的某一特定列。
在这种情况下,只需将整个文件加载进来,然后只对你需要的那一列进行操作。
例如:
import numpy as np
data = np.loadtxt('test.txt')
# Multiply the 4th column by 5
data[:,3] *= 5
# Do something more complicated to the 2nd column
data[:,1] = np.cos(data[:,1])
# Save the array back to the file
np.savetxt('test.txt', data)
8
我在这里回答一个很久以前的问题,主要是为了自己使用。我用下面的代码把两个大小相同的一维数组写成了CSV格式。
import numpy as np
x = [1, 2, 3]
y = [4, 5, 6]
zipped = zip(x, y)
# >>> [(1, 4), (2, 5), (3, 6)]
# Save the array back to the file
np.savetxt('z.csv', zipped, fmt='%i,%i')