如何使用 dtype=object 访问数组中的项目
Posted
技术标签:
【中文标题】如何使用 dtype=object 访问数组中的项目【英文标题】:How to access items from ndarray with dtype=object 【发布时间】:2022-01-21 09:06:34 【问题描述】:如何使用 dtype=object
访问 numpy 数组中的数据?
b = numpy.array("a":[1,2,3], dtype=object)
以下引发IndexError
。
print(b["a"])
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
【问题讨论】:
【参考方案1】:由于您将 dict 传递给 numpy.array()
而不将其放入列表中,因此这是一个零维数组。要索引到一个零维数组,您可以使用b.item()
来访问里面的元素。为了完整起见,要访问字典中 "a"
键中的数据,可以使用它。
>>> b.item()["a"]
[1, 2, 3]
【讨论】:
谢谢!我查找了numpy.org/doc/stable/reference/arrays.ndarray.html,但没有意识到 item() 方法可以让我访问 0-dim 数组。无法使用方括号或点符号访问它。 @AnkitSharma 我相信你也可以通过像b[()]["a"]
这样的0元组切片来索引0-dim数组以上是关于如何使用 dtype=object 访问数组中的项目的主要内容,如果未能解决你的问题,请参考以下文章
为啥 object dtype 数组包含 datetime.datetime 对象而不是 numpy.datetime64 对象?