Numpy数组报错too many indices for array,如何提取其中字典值?
解决NumPy 0维数组中提取字典的问题
首先咱们来理清问题根源:你创建的a是一个0维NumPy数组(也就是标量数组),从a.shape返回()就能明确这一点——这类数组没有可索引的维度,所以用a[0]自然会触发IndexError。
正确提取字典的两种方法
你可以用以下方式轻松取出数组内部的字典:
- 使用
.item()方法
这是NumPy提供的、专门用于从标量数组中提取内部Python对象的方法,简单直接:
import numpy as np a = np.array({'a':1}) my_dict = a.item() # 现在可以正常操作字典了 print(my_dict['a']) # 输出 1
- 使用空元组索引
[()]
0维数组支持通过空元组索引来获取内部值,效果和.item()一致:
my_dict = a[()] print(my_dict['a']) # 输出 1
额外提示:如果想创建可索引的数组(可选)
如果你的本意是生成能通过a[0]访问字典的一维数组,可以用列表包裹字典来初始化:
a = np.array([{'a':1}]) # 现在就能用a[0]取出字典了 print(a[0]['a']) # 输出 1
内容的提问来源于stack exchange,提问作者Qiang Zhang
相关产品推荐
相关产品推荐

