Numpy中的布尔索引

本文深入探讨了Numpy库中的布尔索引和切片技术,通过实例展示了如何使用布尔数组进行高效的数据筛选和操作。从一维和二维的布尔索引应用到布尔矩阵索引,全面解析了Numpy中数据选择的高级技巧。

Numpy中的布尔索引及切片

import numpy as np

ar = np.arange(12).reshape(3, 4)
print(ar)
i = np.array([True, True, False])
j = np.array([True, False, False, True])
print(i)
print(j)
# 布尔索引表示索引出布尔数组中对应的True的部分
print(ar[i, :])  # 在第一维度做判断,只保留True,这里第一维度就是行,ar[i, :]=ar[i](简单书写格式)
print(ar[:, j])  # 在第二维度做判断,这里如果写ar[i, :]会报错,因为i是三个元素,而ar在列上有4个

其运行结果如下

[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[ True  True False]
[ True False False  True]
[[0 1 2 3]
 [4 5 6 7]]
[[ 0  3]
 [ 4  7]
 [ 8 11]]

布尔矩阵索引:

# 布尔型索引:以布尔型的矩阵筛选
s = ar > 5  # 产生一个布尔型的矩阵,ar矩阵中大于5的元素会用True表示
print(s)
print(ar[s])

其结果为:

[[False False False False]
 [False False  True  True]
 [ True  True  True  True]]
[ 6  7  8  9 10 11]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值