2017-02-09 2 views
3

я наткнулся на код Python, который имел что-то похожее на то, что следует:Numpy означает, с оператором сравнения в параметре

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 

Я не понимаю, что это оператор сравнения означает? Любые указатели на функцию функции() для функции numpy были бы хороши.

спасибо.

ответ

3

Ну, если вы пишете a <= 3, вы создаете массив со значениями:

array([ True, True, True, False, False, False, False], dtype=bool) 

С True имеет значение 1.0 (или 1) и False имеет значение 0.0 (или 0), он вычисляет mean над списком булевых. Таким образом, другими словами, здесь будет подсчитываться количество элементов, для которых значение имеет значение для общего количества элементов.

сам mean не имеет конкретных поведения: если вы подаете ему список Foo с, он будет просто оценить Foo1+Foo2+...Foon и разделить его по длине списка, а также:

>>> False+True 
1 
>>> True+True 
2 

Поэтому результат от np.mean(a <=3) составляет 3/7 (первые три элемента: <= 3 над семью элементами) и np.mean(a <=4) 4/7 здесь.

2

Возможно, вы захотите рассчитать среднее количество маленьких чисел.

Вот так:

In [2]: a=arange(8) 

In [3]: b= a<=3 

In [4]: b # condition 
Out[4]: array([ True, True, True, True, False, False, False, False], dtype=bool) 

In [5]: a[b] #selection 
Out[5]: array([0, 1, 2, 3]) 

In [6]: a[b].mean() 
Out[6]: 1.5 
Смежные вопросы