将多个numpy数组写入文件

11 投票
3 回答
34871 浏览
提问于 2025-04-16 02:23

我知道怎么用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')

撰写回答