在文本文件中写入 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
我在尝试将 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