首页 > 解决方案 > 使用列表从数组的numpy数组中提取元素

问题描述

这应该是基本的,但是现在我的头撞墙了一段时间。

我有一个数组数组(16 x 16 of 128 x 128 子数组),例如

a.shape

(16, 16, 128, 128)

我还有一份感兴趣的指数列表

print(indices)

[[2, 4], [3, 11], [6, 3], [9, 1], ......]

我想提取与列表中的索引对应的子数组。因此,如果传递单个索引的值,则可以正常工作,例如

b = a[2, 4]

print(b.shape)

(128, 128)

但是,如果我尝试使用列表索引执行此操作,我不会得到相同的结果:

b = a[[indices[0]]]

print(b.shape)

(2, 16, 128, 128)

我得到了一个 2 x 16 的子数组数组,这是我不想要的。任何帮助表示赞赏!

标签: pythonarraysmultidimensional-arraynumpy-ndarray

解决方案


一种简单的解决方法:

b = a[indices[0][0], indices[0][1]]
print(b.shape)
# (128, 128)

推荐阅读