我是python的新手,在读取别人保存的*.npy文件时遇到了问题。如果我使用以下命令:
import numpy as np
np.load('lat.npy')
我得到以下错误:ValueError: Cannot load file containing pickled data when allow_pickle=False
因此,我设置了allow_pickle=True:np.load('lat.npy',allow_pickle=True)
然后,我得到一个不同的错误:OSError: Failed to interpret file 'lat.npy' as a pickle
也许这与我在一台PC上,而另一个文件是在Mac上写的有关。
我做错了什么吗?(如果这个问题已经被问过了,我很抱歉。)谢谢!
发布于 2020-12-22 21:59:24
我了解到我同事的数据文件是用Python2编写的,而我使用的是Python3。使用带有以下选项的np.load命令可以工作:
np.load('lat.npy',allow_pickle=True,fix_imports=True,encoding='latin1')
似乎我需要设置所有这些选项,但“编码”参数似乎特别重要。numpy.load的文档提到了编码参数,“只有在Python3中加载Python2生成的pickled文件时才有用,其中包括包含对象数组的npy/npz文件。”
https://stackoverflow.com/questions/65400705
复制相似问题