gpt4 book ai didi

python - 使用 numpy.load 时遇到问题

转载 作者:太空狗 更新时间:2023-10-29 20:51:26 26 4
gpt4 key购买 nike

我有以下用 python 2 编写的数据,我想将其加载到 python 3 文件中。

import numpy as np
x = np.array([{'a': np.array([1., 2., 3])}])
np.save('data.npy', x)

我的第一次尝试是这样的:

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 float ,我就会得到错误。我的第二次尝试是这样的:

import numpy as np
x = np.load('data.npy', encoding = 'bytes')
x

array([{b'a': array([ 1., 2., 3.])}], dtype=object)

它的工作原理是我可以加载数据,但它在字典中的每个键前面添加了一个“b”。我想知道是否有人知道为什么会出现此问题以及如何解决它。

谢谢!

编辑:

似乎以下解决了问题:

import numpy as np
x = np.load('data.npy', encoding = 'latin1')

最佳答案

Python 2 中的默认编码是ascii;在 Python 3 中它是 utf-8latin1(又名 ISO-8859-1)是 ascii 的超集。这就是为什么使用 latin1 加载 ascii 编码的字符串可以工作,并给出与使用 ascii 加载它相同的结果。

关于python - 使用 numpy.load 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38316283/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com