这应该是基本的,但是现在我的头撞墙已经有一段时间了。
我有一个数组数组(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/