无法从单项 numpy 数组中提取对象

qua*_*ine 8 python arrays numpy

我似乎在解决一个非常简单的问题上遇到了困难。我保存了一个 *.npz 文件,其中包含一个变量——Network 类的对象(我编写的一个类)。

# Initialize network 
burstNetwork = Network(numChs,dt,UFRs,NBPs,BDs,UFRsByChan,varyFRbyChs,minChConstBurst,createChCorrelations)
if saveData:
    pd.np.savez((saveDir + "simulator.npz"), burstNetwork=burstNetwork)
Run Code Online (Sandbox Code Playgroud)

当我尝试读回数据时,我发现我的变量现在采用大小为 1 的 numpy 数组的形式,我无法从中索引,因此无法取回我的 Network 对象并查看其属性(我的最终目标)。

# Load network
simulator = np.load(simFilesDir + "simulator.npz")
network = simulator['burstNetwork']
network

Out[43]: array(<__main__.Network object at 0x000000000AEF0C18>, dtype=object)
Run Code Online (Sandbox Code Playgroud)

索引尝试:

network[0]

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-44-297be643431d> in <module>()
----> 1 network[0]

IndexError: too many indices for array
Run Code Online (Sandbox Code Playgroud)

请指教。

hpa*_*ulj 6

索引数组时,您需要一个与长度维度匹配的元组。这是 0d,因此元组的长度必须为 0 ()。该item方法也有效。

In [922]: arr = np.array(1, dtype=object)
In [923]: arr.shape
Out[923]: ()
In [924]: arr
Out[924]: array(1, dtype=object)
In [925]: arr.item()
Out[925]: 1
In [926]: arr[()]
Out[926]: 1
Run Code Online (Sandbox Code Playgroud)