首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法加载包含已酸洗数据的文件- Python .npy I/O

无法加载包含已酸洗数据的文件- Python .npy I/O
EN

Stack Overflow用户
提问于 2020-02-12 23:25:44
回答 6查看 31.6K关注 0票数 13

我尝试使用np.save()将数据帧和矩阵保存为.npy文件,然后使用np.load()读取它们,但得到以下错误:

代码语言:javascript
运行
复制
  File "/Users/sofiafarina/opt/anaconda3/lib/python3.7/site-packages/numpy/lib/npyio.py", line 457, in load
    raise ValueError("Cannot load file containing pickled data "

ValueError: Cannot load file containing pickled data when allow_pickle=False

即使我写了allow_pickle=True,我也会得到一个错误:

代码语言:javascript
运行
复制
  File "/Users/sofiafarina/opt/anaconda3/lib/python3.7/site-packages/numpy/lib/npyio.py", line 463, in load
    "Failed to interpret file %s as a pickle" % repr(file))

OSError: Failed to interpret file 'finaldf_p_85_12.npy' as a pickle

那么,我如何从python脚本中保存一个df,然后将其加载到另一个脚本中呢?我应该使用其他函数吗?谢谢!

EN

回答 6

Stack Overflow用户

发布于 2020-05-26 17:32:32

我使用下面的语法加载.npy文件,它工作了。

代码语言:javascript
运行
复制
np.load("finaldf_p_85_12.npy",allow_pickle=True)

我认为您需要添加allow_pickle=True参数。

票数 5
EN

Stack Overflow用户

发布于 2021-05-11 11:14:52

TLDR;

经过数百次的搜索和几个小时的调试,我发现问题出在git-lfs上,我的文件没有被git-lfs拉取。

代码语言:javascript
运行
复制
git lfs install
git lfs pull

我认为numpy需要正确地报告这一点

我也有同样的问题。我的.npz文件中的dtypeuint8,所以不是一个对象,从技术上讲,allow_pickle不应该是必需的。我的numpy版本是1.20.x

在使用allow_pickle=False时获得了以下内容

ValueError: Cannot load file containing pickled data when allow_pickle=False

有了allow_pickle=True,我得到了

OSError: Failed to interpret file 'finaldf_p_85_12.npy' as a pickle

票数 5
EN

Stack Overflow用户

发布于 2020-04-07 08:04:27

Python使用一个名为Pickle的本机数据序列化模块。嵌套数据(如列表列表)使用pickle进行序列化,NumPy对pickle发出警告。

警告:加载包含对象数组的文件使用pickle模块,该模块对错误或恶意构造的数据不安全。考虑传递allow_pickle=False来加载已知不包含对象数组的数据,以便更安全地处理不受信任的源。

您可能要保存一个包含单个dataFrame的数组。这会导致酸洗。示例:

代码语言:javascript
运行
复制
x =  array([[ 0.1,  0.1,  0.1],
       [ 0.1,  0.1,  0.1],
       [ 0.1,  0.1,  0.1],
       [ 0.1,  0.1,  0.1],
       [ 0.1,  0.1,  0.1],
       [ 0.1,  0.1,  0.1],
       [ 0.1,  0.1,  0.1]])

在这种情况下,尝试仅将numpy数组保存为np.save(filename, x[0])。这将不会使用任何酸洗来保存您的数据,并解决了问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60191681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档