繁体   English   中英

使用2d布尔从3d numpy数组中提取1d数组

[英]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取与maskTrue值相对应的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM