Trouble using numpy.load
我有以下用python2编写的数据,我想加载到python3文件中。
1 2 3 | import numpy as np x = np.array([{'a': np.array([1., 2., 3])}]) np.save('data.npy', x) |
我的第一次尝试是:
1 2 3 4 | import numpy as np x = np.load('data.npy') UnicodeError: Unpickling a python object failed |
在尝试加载原始数据之后,每当我在Python字典中的numpy数组中有numpy float时,我都会得到错误。我可以加载字典,可以加载numpy数组,甚至可以在python字典中加载numpy数组,但只要在python字典中的numpy数组中有numpy浮点数,我就会得到错误。我的第二次尝试是:
1 2 3 4 5 | import numpy as np x = np.load('data.npy', encoding = 'bytes') x array([{b'a': array([ 1., 2., 3.])}], dtype=object) |
这样做的目的是我可以加载数据,但它在字典的每个键前都添加了一个"b"。我想知道是否有人知道为什么会发生这个问题以及如何解决它。
谢谢!
编辑:
似乎下面解决了这个问题:
1 2 | import numpy as np x = np.load('data.npy', encoding = 'latin1') |
python2中的默认编码是