如何检索由 numpy 保存的对象

How to retrieve an object saved by numpy

我通过 numpy.save() 保存了我的 class 的一个对象,我可以通过 numpy.load() 加载它,但我检索到的值是:[].

class SampleClass:
   
    def __init__(self, y):
        self.y = y


y=np.array([1,2,3])
x=SampleClass(y)
np.save("x",x, allow_pickle=True)

xx=np.load("x.npy")

此代码是示例,xx 值是 []。如何访问 y (xx.y) 的值?

'allow_pickle' 是 load 所必需的,而不是 save

In [2]: class SampleClass:
   ...: 
   ...:     def __init__(self, y):
   ...:         self.y = y
   ...: 
   ...: 
   ...: y=np.array([1,2,3])
   ...: x=SampleClass(y)
   ...: np.save("x",x)
   ...: xx=np.load("x.npy", allow_pickle=True)

In [2]: 

In [3]: xx
Out[3]: array(<__main__.SampleClass object at 0x000002583B8BCDC0>, dtype=object)

xx 是一个 0d 对象 dtype 数组。它有一个元素,可以用

提取
In [4]: xx.item()
Out[4]: <__main__.SampleClass at 0x2583b8bcdc0>

或:

In [5]: xx[()]
Out[5]: <__main__.SampleClass at 0x2583b8bcdc0>

() 索引匹配数组的 0d 形状。