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

我有一个数组数组(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子阵列。任何帮助表示赞赏!

最佳答案

一种简单的解决方法:

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

关于python - 使用列表从numpy数组中提取元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59217350/

10-15 14:05