第十天
Numpy数组布尔掩码和花哨的索引
当你想基于默写准则来抽取、修改、计数或对一个数组中的值进行其他操作时,掩码就可以派上用场了。例如你可能希望统计数组中有多少值大于某一个给定值,或者删除所有超出某些阈值的异常点。在Numpy中,布尔掩码通常是完成这类任务的最高效方式。
一、操作布尔数组
通用函数中,我们看到+,-,*,/等一些运算符实现了数组的逐元素操作。Numpy还实现了<(小于)和>(大于)的逐元素比较的通用函数。这些比较运算的结果是一个布尔数据类型的数组。
x = np.array([1, 2, 3, 4, 5, 6]) x < 3 # 小于 # [True, True, False, False, False, False]
给定一个布尔数组,可以实现很多有用的操作。
生成一个二维数组x x = np.random.randint(10, size=(3, 4)) print(x)
1.统计记录的个数
# 有多少值小于6 np.count_nonzero(x < 6) # 或者使用sum np.sum(x < 6) ----------------------- sum的好处是和其他Numpy聚合函数一样,这个求和也可以沿着行或列进行 # 每行有多少值小于6 np.sum(x < 6, axis=1) # array([3, 3, 3]) ----------------------- 如果想要快速检查或所有这些值是否为True,可以使用np.any和np.all # 有没有大于6的 np.any(x > 8) # 是否所有值都小于10 np.all(x < 10)
2.布尔运算符
Python里面的逐位逻辑运算符有&、|、^、和~来实现。同标准运算符一样,Numpy用通用函数重载了这些逻辑运算符,这样就可以实现数组的逐位运算。
# 统

本文介绍了Numpy中布尔掩码和花哨索引的概念及其在机器学习中的作用。布尔掩码用于根据特定条件筛选数组元素,如统计大于特定值的元素数量,而花哨索引则允许通过索引数组获取和修改复杂数据子集。通过结合布尔操作、掩码和聚合,可以高效地处理数据集的子集。
(十)Numpy数组布尔掩码和花哨的索引&spm=1001.2101.3001.5002&articleId=86558367&d=1&t=3&u=b53efbc4a43d454a9027358e775d38d3)
2337

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



