[英]Extracting 1d arrays from 3d numpy array using 2d boolean
假设我有一个3D numpy数组:
i, j, k = 10, 3, 4
arr = np.arange(120).reshape(i, j, k)
和一个二维布尔数组:
mask = np.random.random((j, k)) > 0.5
n = mask.sum()
我希望能够从arr
沿其1st True
取与mask
的True
值相对应的1d数组。 结果应具有形状(i, n)
。 怎么办呢?
我拉出一些旧代码,由于某种原因我在做arr[mask]
但这给出了(n, k)
的形状(我不确定为什么)和一个警告:
VisibleDeprecationWarning: boolean index did not match indexed array along dimension 0; dimension is 10949 but corresponding boolean dimension is 11
只需沿最后两个轴遮罩-
arr[:,mask]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.