Menu
CoddyTech

布尔索引

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] 可以正常工作。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

challenge icon

挑战

简单

编写一个名为 small_five 的函数,它接收一个列表,并返回所有小于 5 的元素之和。

亲手试试

import numpy as np
def small_five(lst):
	# Complete your code

NumPy 基础中的所有课

自己练习: Python 在线编译器