所以我正在尝试学习Numpy,但我不明白这部分代码是如何给出输出的:
arr = array([1,2,3,4,5,6,7,8,9,10])
arr[arr>5]
输出:
array([6,7,8,9,10])
我确实知道arr>5
返回了一个布尔值数组,但是我只是不明白该布尔数组在传递给arr[]
时如何给出指定的输出。
帮助表示赞赏。
答案 0 :(得分:1)
>>> import numpy as np
>>> a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
>>> a
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
您已经说过,a > 5
产生布尔值数组:
>>> mask = a > 5
>>> mask
array([False, False, False, False, False, True, True, True, True,
True])
这可以解释为掩码。与访问single elements(例如第一个元素)的方式类似,
>>> a[0]
1
您可以通过以下掩码使用index arrays来访问特定元素:
>>> a[mask]
array([ 6, 7, 8, 9, 10])
1, 2, 3, 4, 5
不会出现,因为mask
的前5个元素是False
。其余为True
,因此显示了6, 7, 8, 9, 10
。