我如何访问数组内部的字典?
import numpy as np
x = np.array({'x': 2, 'y': 5})
我的最初想法:
x['y']
索引错误:不是有效的索引
x[0]
索引错误:数组的索引过多
您拥有一个对象dtype的零维数组。制作这个数组可能是一个错误,但如果您仍想使用它,您可以通过用不带索引的元组对数组进行索引来提取字典:
x[()]
或通过调用数组的 item
方法:
x.item()
x = np.array([{'x': 2, 'y': 5}])
那么你可以使用:
x[0]['y']
我相信这会更有意义。
# json & dict -> tuple
djson = json.loads('{"Foo": "bar", "Loreum": "ipsum"}') # json -> dict
dict2tupls = []
n = 0
for i in djson.items():
dict2tupls += [i]
make_nparray = np.array(dict2tupls)
print(dict2tupls)
print(make_nparray)
print(make_nparray.shape)
字典:
[('Foo','bar'),('Loreum','ipsum')]
nparray:
[['Foo','bar'],['Loreum','ipsum']]
nparray维度:
(2, 2)
这是我想出的解决方案,将键值对转换为元组。根据需要处理维度。
np.savez_compressed
保存一些变量(包括一个字典)并重新加载它们后,我最终得到了一个0维数组。我和提问者一样感到困惑,所以这仍然是一个相关的答案,谢谢! - JPhibs