python数据科学(五) Numpy(四)
本文最后更新于:2023年4月15日 晚上
python数据科学(五) Numpy(四)
1 | 比较, 掩码和布尔逻辑
利用如上述运算符可以得到一个bool型的数组d
如:
操作bool数组
统计布尔数组中true的个数: np.count_nonzero()
或者 np.sum()
利用np.sum()
可以沿着列或者行进行, 如np.sum(x < 6, axis = 1)
快速检查任意或者所有的这些值是否为true: np.any()
和 np.all()
bool运算符
可以利用& | ^ ~
对bool数组进行与或异或非运算
例如: 统计>0.5且<1的个数` np.sum((x > 5) & (x < 1))`
and, or
和&, |
的区别: and和or对整个对象进行bool运算, 而&
和|
对一个对象的内容执行多个bool运算, 对于Numpy的bool数组, 后者是常用的操作
将bool数组作为掩码
2 | fancy indexing (花哨索引)
花哨索引的概念: 传递一个索引数组来一次性获得多个数组元素
直接举例:
组合索引
将fancy indexing和简单地索引组合使用:
1 |
|
3 | 数组的排序
np.sort()
提供快速排序, 在不修改原始数组的基础上返回一个排好序的数组
np.argsort()
返回原始数组排好序的索引值
np.partition(x, K)
返回新数组, 左边是数组中最小的K个值, 右边是原数组的其他值
同样地, np.argpartition()
函数计算的是分隔的索引值
可以通过指定axis参数对行/列排序 (这样处理将行列当成独立的数组, 丢失行列值之间的关系)