将多个numpy数组写入文件

11

我知道如何使用numpy.savetxt将数组写入文件。如何将多个数组写入同一个文件呢?

实际上,我想对一列数字进行数学计算,然后用修改后的数字替换旧列。 我读到最简单的方法是完全编写一个新文件,将修改后的数字放入其中,并将其他数字“复制并粘贴”到文件中。

希望有所帮助。

谢谢!

3个回答

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

1
这看起来不错,但在Python 3上无法运行。在这里,NumPy会抛出一个“IndexError”。 - jmd_dk

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)

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
欢迎来到StackOverflow并感谢您的尝试帮助。请解释一下您只提供代码的答案。 - Yunnosch
无法工作:数组数据类型('object')与格式说明符('%.18e')不匹配。 - rhody

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接