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

642

被折叠的 条评论
为什么被折叠?



