【问题标题】:Failed to interpret file %s as a pickle when loading an npy array加载 npy 数组时无法将文件 %s 解释为泡菜
【发布时间】:2013-11-05 16:30:52
【问题描述】:

您好,我是 python 的新用户,想要导入保存的 npy 数组。尝试加载 npy 数组时,我收到以下错误消息。提前致谢!

import numpy as np

A = np.load('C:/Final Runs/lineTank.npy')

我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\numpy\lib\npyio.py", line 384, in load
    "Failed to interpret file %s as a pickle" % repr(file))
IOError: Failed to interpret file 'C:/Final Runs/lineTank.npy' as a pickle

【问题讨论】:

  • 你确定lineTank.npy实际上是一个二进制npy文件吗?是np.save保存在同一个系统上的吗?
  • 嗨,乔,是的,它使用 np.save 创建
  • @user1985939 尝试做:np.load(open(r'C:\Final Runs\lineTank.npy', 'rb'))
  • 感谢@SaulloCastro。我意识到我使用传统的 Python 方法创建了 .npy 文件是对的,这种方法无法将其读入 numpy!
    f = open("sparTank.npy", "w")
    尝试:
    f.write(VRms_Tank)
    最后:
    f.close()

标签: python arrays numpy load


【解决方案1】:

感谢各位的帮助。我意识到@Joe Kington 是对的。该文件是使用传统的 python 写入文件而不是 numpy 创建的。这是我用过的(没用):

f = open(Filename, "w")
try:
    f.write(a)
finally:
    f.close()

与使用 numpy 的保存相反,它有效:

import numpy as np
np.save(Filename, a)
a = np.load(Filename)

【讨论】:

    【解决方案2】:

    您可能需要先将文件加载到字符串中,然后 numpy.load() 字符串。

    类似:

    with f as file.open(filename):
      foo = f.readlines()
    bar = numpy.load(foo)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-22
      • 2021-05-31
      • 1970-01-01
      • 2018-07-29
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多