一、问题
使用numpy读取数据时出现错误,ValueError: Object arrays cannot be loaded when allow_pickle=False。
查了一下numpy.load()函数
用法
numpy.load(file, mmap_mode=None, allow_pickLe=False, fix_mports=True, encoding=‘ASCII’)
参数
file:类文件对象、字符串或 pathlib.Path。要读取的文件。类文件对象必须支持 seek() 和 read() 方法。
mmap_mode:如果不是 None,则使用给定模式对文件进行内存映射(有关模式的详细描述,请参见 numpy.memmap)
allow_pickle :允许加载存储在npy文件中的腌制对象数组。
fix_imports:仅在在Python 3上加载Python 2生成的腌制文件时有用,该文件包括包含对象数组的npy /npz文件。
encoding:仅当在Python 3中加载Python 2生成的腌制文件时有用,该文件包含包含对象数组的npy /npz文件。
返回
返回:存储在文件中的数据。对于.npz 文件,必须关闭返回的 NpzFile 类的实例,以避免泄漏文件描述符。
二、解决办法
1、加一句allow_pickle=True就搞定了,很方便。
data=np.load(’./国民经济核算季度数据.npz’,allow_pickle=True)
allow_pickle:一个布尔值,默认为False。如果为True,则使用Python pickle,允许加载存储在npy文件中的腌制对象数组。
2、有的人说将numpy降版本到1.16.2以下也可以,但是我用的是第一种方法。
pip install numpy==1.16.2