ValueError: Object arrays cannot be loaded when allow_pickle=False解决方案

在使用numpy打开npz文件的时候,进行如下操作。

import os
import matplotlib.pyplot as plt
import numpy as np
data = np.load('你要读取的文件.npz')
data['columns']

会报这样的错误:

ValueError                                Traceback (most recent call last)
<ipython-input-5-c59aaba21cab> in <module>()
----> 1 data['columns']

~/anaconda3/lib/python3.6/site-packages/numpy/lib/npyio.py in __getitem__(self, key)
    260                 return format.read_array(bytes,
    261                                          allow_pickle=self.allow_pickle,
--> 262                                          pickle_kwargs=self.pickle_kwargs)
    263             else:
    264                 return self.zip.read(key)

~/anaconda3/lib/python3.6/site-packages/numpy/lib/format.py in read_array(fp, allow_pickle, pickle_kwargs)
    737         # The array contained Python objects. We need to unpickle the data.
    738         if not allow_pickle:
--> 739             raise ValueError("Object arrays cannot be loaded when "
    740                              "allow_pickle=False")
    741         if pickle_kwargs is None:

ValueError: Object arrays cannot be loaded when allow_pickle=False

因为numpy在升级后将np.load()参数allow_pickle默认改为False。
有两种解决方案,一是使用低一点的版本。
二是在读入文件的时候,在后面加个allow_pickle = True就可以完美解决。

import os
import matplotlib.pyplot as plt
import numpy as np
data = np.load('你要读取的文件.npz',allow_pickle = True)
data['columns']
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值