【问题标题】:Writing numpy array in a text file在文本文件中写入 numpy 数组
【发布时间】:2022-01-05 21:03:49
【问题描述】:

我在尝试将 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)

【问题讨论】:

  • a 是一维的。它没有行。
  • 是的,它是 1D,但错误告诉我它是 0D,它应该仍然适用于 1D。
  • 在你的例子中 a 是 1-d,但 row 是 0-d。

标签: python numpy-ndarray


【解决方案1】:

正如 cmets 中提到的,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

【讨论】:

    猜你喜欢
    • 2019-05-18
    • 2017-12-23
    • 1970-01-01
    • 2014-09-12
    • 2023-03-31
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    相关资源
    最近更新 更多