我有一个dict
并且我将一个数组与每个键相关联(键本身就是一个数字)。
最小例子:
import numpy as np
data = {}
data[2.5] = np.array([np.array([1,2,3,4]), np.array([5,6,7,8])])
然后我保存dict
:
np.save('file.npy', data)
然后重新加载:
datanew = np.load('file.npy')
-
现在,为了访问每个密钥中存储的内容,我不能:
datanew[2.5]
但我必须这样做
datanew[()][2.5]
答案 0 :(得分:4)
原因是因为np.save
的arr
参数需要一个数组。当你通过字典时,它会将其保存为一个一个一个无量纲的字典。阵列。因此,当您加载它时,您需要首先获得'该无量纲数组中的元素(即[()]
)。你可以在拨打np.load
时这样做,然后再也不用担心了:
datanew = np.load('file.npy')[()]
或者,因为您尝试保存字典,所以可以使用泡菜。 np.save
被认为是针对数值数组进行优化的,我不知道你是否仍然可以获得它的好处,并且已经将你的数组放在字典中了...