【发布时间】:2019-07-08 15:53:24
【问题描述】:
我有一个尺寸为 (6,m,n) 的 3-D numpy 数组 a。我还有一个 6-D 布尔 numpy 数组 b,其维度为 (20,20,20,20,20,20),可以有效地用作掩码。
我想使用第一个数组中每个位置(m,n) 的6 个值来检索第二个数组中的相应值。实际上,我会将 3D int 数组压缩为 2D 布尔数组。我认为解决方案是使用np.where,但我认为它不能处理使用值作为索引。
天真的实现是这样的:
for i in range(m):
for j in range(n):
new_arr[i,j]=b[tuple(a[:,i,j])]
有什么方法可以在不使用循环的情况下实现这一点?
【问题讨论】:
标签: python numpy vectorization