Python数据科学手册-Numpy数组的计算:比较、掩码和布尔逻辑,花哨的索引

Numpy的通用函数可以用来替代循环, 快速实现数组的逐元素的 运算
同样,使用其他通用函数实现数组的逐元素的 比较

< > 这些运算结果 是一个布尔数据类型的数组。 有6种标准的比较操作

  • 小于,大于,小于等于,大于等于, 不等于, 等于

x > 3
x <= 3
x >= 3
x != 3
x == 3

  • 复合表达式
  • 对应的通用函数
Operator Equivalent ufunc Operator Equivalent ufunc
== np.equal != np.not_equal
< np.less <= np.less_equal
> np.greater >= np.greater_equal

操作布尔数组

  • 统计记录的个数
    False : 0 ,True : 1

    np.sum(x<6) #聚合函数

np.any(x>8)

布尔运算符

& | ^ ~
Numpy用通用函数重载了这些逻辑运算符

Operator Equivalent ufunc Operator Equivalent ufunc
& np.bitwise_and
^ np.bitwise_xor ~ np.bitwise_not

将布尔数组作为 掩码

将布尔数组作为掩码,通过该掩码选择数据的 子数据集 。

花哨的索引

前面学习了 简单的索引值 切片 布尔掩码 获得并修改部分数组。
另外一种, fancy indexing .与前面类似,但是传递的是索引数组,不是单个标量。
能够快速获得并修改复杂的数组值 的 子数据集

结果的形状和 索引数组 的形状 一致

  • 对多个维度也适用

索引值 配对 遵循 广播规则。

输出

组合索引


切片

掩码

数组的排序