参数中带有比较运算符的 numpy 均值

Tro*_*osh 5 python numpy

我遇到了一个类似于以下内容的 Python 代码:

a = np.array([1,2,3,4,5,6,7])
a
array([1, 2, 3, 4, 5, 6, 7])
np.mean(a)
4.0
np.mean(a <=3)
0.42857142857142855
np.mean(a <=4)
0.5714285714285714
Run Code Online (Sandbox Code Playgroud)

我不明白比较运算符是什么意思?numpy 的 mean() 函数实现的任何指针都会很好。

谢谢你。

Wil*_*sem 5

好吧,如果你写了a <= 3,你就构造了一个包含值的数组:

array([ True,  True,  True, False, False, False, False], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

由于True具有值1.0(或1)并且False具有值0.0(或0),因此它计算mean布尔值列表。因此,换句话说,它将在这里计算该值在元素总数中保持的元素数。

mean本身没有特定的行为:如果你给它一个Foos的列表,它会简单地评估Foo1+Foo2+...Foon并在列表的长度上划分它,并且:

>>> False+True
1
>>> True+True
2
Run Code Online (Sandbox Code Playgroud)

因此 的结果np.mean(a <=3)是 3/7(前三个元素<= 3超过七个元素)和np.mean(a <=4)4/7 在这里。