【问题标题】:Creating an array using data from a text file (NumPy)使用文本文件中的数据创建数组 (NumPy)
【发布时间】:2013-09-27 16:36:39
【问题描述】:

我正在尝试创建一个包含 2 列和超过 7000 行(大量数据)的数组。我拥有的数据以文本文件的形式写入,并格式化为两列,每个变量用空格分隔。 我最大的问题是 NumPy 似乎找不到文件。

 1.  import numpy as np
 2.  np.fromfile(stardata.txt)

这会返回:

NameError: name 'stardata' is not defined

我检查了目录,一切似乎都井井有条。该文件位于正确的目录中。

我的下一个问题是看看这是否会成为一个好的数组。我猜我可能不得不使用.reshape() 让它看起来像我想要的样子。之后,我将使用这些数据制作(Hertzsprung-Russell)图。

完整的错误信息在这里:

C:\Users\Petar\AppData\Local\Enthought\Canopy\System\lib\site-packages\IPython\utils\py3compat.pyc in execfile(fname, glob, loc)
    174             else:
    175                 filename = fname
--> 176             exec compile(scripttext, filename, 'exec') in glob, loc
    177     else:
    178         def execfile(fname, *where):

    C:\Users\Petar\Desktop\test.py in <module>()
          1 import numpy as np
    ----> 2 np.fromfile(stardata.txt)

    NameError: name 'stardata' is not defined

【问题讨论】:

  • 在文件名两边加上引号后,现在说没有这样的文件或目录。
  • 我建议不要使用np.fromfile 来加载文本文件。 np.genfromtxt 大大改进了。

标签: python arrays file text numpy


【解决方案1】:

您的文件名需要用引号括起来:

np.fromfile('stardata.txt')

【讨论】:

  • 现在说没有这样的文件或目录。
  • stardata.txt 相对于您正在执行的脚本以及您从何处执行它?听起来您可能只需要完整的路径名即可工作。
  • 脚本和文本文件都保存在我的桌面上。
  • 您也需要从桌面运行脚本。在你的命令窗口中,确保你在C:\Users\&lt;name&gt;\Desktop,然后再执行python &lt;script&gt;.py
  • 当我要求它列出目录时,它声明C:\Users\&lt;name&gt;\Desktop\&lt;filename.py&gt;。也许这就是它找不到文本文件的原因。我将如何去改变目录?
猜你喜欢
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 2019-05-25
  • 2013-12-10
相关资源
最近更新 更多