在文本文件中写入 numpy 数组

Writing numpy array in a text file

我在尝试将 numpy 错误写入文本文件时遇到错误。把问题放在下面的代码

import numpy as np

a = np.arange(1,10)
sigma = open("sample",'w')
for row in a:
    np.savetxt(sigma,row)
sigma.close()

报错ValueError: Expected 1D or 2D array, got 0D array instead

我用这段代码解决了这个问题:

a = np.arange(1,10)
sigma = open("sample",'w')
np.savetxt(sigma,a, newline="\n")
sigma.close()

但我现在仍然不明白为什么我的第一次尝试没有成功。为什么我的数组出现0D? (我正在使用 python 3.9.9)

如评论中所述,for 循环是您的问题,这是因为当您遍历一维数组时,您会得到标量:

import numpy as np

a = np.arange(1,10)
sigma = open("sample",'w')
np.savetxt(sigma,a)
sigma.close()

结果:


1.000000000000000000e+00
2.000000000000000000e+00
3.000000000000000000e+00
4.000000000000000000e+00
5.000000000000000000e+00
6.000000000000000000e+00
7.000000000000000000e+00
8.000000000000000000e+00
9.000000000000000000e+00