微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

基于另一个布尔数组屏蔽 numpy 数组以选择特定行

如何解决基于另一个布尔数组屏蔽 numpy 数组以选择特定行

假设我有一个这样的数组:

my_arr = np.array([1,2,3,4,5,6,7,8,9,10])

或二维数组,如:

my_arr = np.array([[1,1,11],[2,0],[3,-1],...,[10,0]])

我定义了一个数组

mask_arr = ([1,1])

我想从掩码数组中得到一个由行组成的新数组,其中它们索引的mask_arr,元素等于“1”。

例如,第一个数组的结果如下:

[1,10]

我试过了

my_arr[my_mask]

但是没有用。有没有不想写一个 for 循环来做到这一点的解决方案?

提前致谢

解决方法

您的 <div class="form-group mb-3"> <div class="input-group"> <input asp-for="Name" class="form-control" placeholder="Name" /> <div class="input-group-append"> <div class="input-group-text"> <span class="fas fa-user"></span> </div> </div> </div> <small> <span asp-validation-for="Name" class="text-danger"></span> </small> </div> 看起来像整数类型,当您使用整数数组切片时,该数组被视为索引。所以

mask_arr

会给你my_arr[[0,1,1]] 。正如您所提到的,您想将 [row0,row1,row1] 视为布尔值,然后您可以将其转换为布尔值:

mask_arr

将提取与 my_arr[mask_arr.astype('bool')] 中的 1 对应的行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。