我有一个多维numpy数组X
的shape
:(B, dim, H, W)
我想随机抽样k
dim
维向量X
。
我可以从形状(B, 1, H, W)
的msk
获得样本索引:
sIdx = random.sample((msk.flat>=0).nonzero()[0], k)
使用numpy的等效采样代码是:
sIdx = np.random.choice((msk.flat>=0).nonzero()[0], replace=False, size=(k,))
但是,如何根据“平坦”采样索引sIdx
有效地切片X
?
也就是说,有没有一种有效的方法将msk
的随机抽样与X
的切片结合起来?你知道吗
从展平的索引中用^{} 获得其余三个轴的相应索引,并简单地沿着这些轴索引到
X
以获得最终输出,如下-相关问题 更多 >
编程相关推荐