布尔索引
Coddy NumPy 基础 课程的第 14 课,共 18 课。
Numpy 提供了根据条件选择元素的选项。
使用以下语法:ary[ary operator number]
ary[ary > 5]ary[ary == 5]ary[ary <= 5]- 等等
示例 1
获取所有小于 5 的数字
x = np.array([1, 5, 2, 4, 9 ,10 ,13, 7])
x[x < 5]
>>> [1, 2, 4]示例 2
维度更高时会发生什么?
x = np.array([[1, 5], [2, 4], [9 ,10] ,[13, 7]])
x[x < 5] # --> [1, 2, 4]
x[x >= 5] # --> [5, 9, 10, 13, 7]
x[x == 6] # --> []看到了吗?它返回了一个包含所有满足条件的元素的数组。
对 x 应用条件时,它会返回一个 boolean 数组,用来表示每个索引对应的元素是否满足条件。
示例 3
这次我们来看看,如果只使用条件而不加方括号 [],会发生什么。
x = np.array([1, 2, 3])
x < 2
>>> [True, False, False]它会返回一个列表,其中包含所有满足条件的索引。
示例 4
我们不必把条件放在方括号 [] 中,也可以像前一个示例那样放入一个布尔列表,以获取所需的元素。
x = np.array([8, 4, 10])
x[[False, True, False]] # --> [4]
x[[True, True, False]] # --> [8, 4]
x[[True, False, True]] # --> [8, 10]
x[[False, False, False]] # --> []
示例 3 和示例 4 解释了为什么 x[x < 5] 可以正常工作。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
挑战
简单编写一个名为 small_five 的函数,它接收一个列表,并返回所有小于 5 的元素之和。
亲手试试
import numpy as np
def small_five(lst):
# Complete your codeNumPy 基础中的所有课
自己练习: Python 在线编译器