2017-02-09 5 views
3

で比較演算子と意味: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 

私は比較演算子は、意味が分かりませんか? numpyのmean()関数の実装のためのポインタはすばらしいでしょう。

ありがとうございます。

答えて

3

さてあなたはa <= 3を書いた場合、あなたが値を持つ配列構築:Trueは値1.0(または1)を持っているので

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

をしてFalse0.0(または0)を持っている、それはリストの上にmeanを算出し、ブーリアンのつまり、ここでは、要素の総数に対して値が保持する要素の数を数えます。したがって、結果

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

:あなたはそれをFooのリストを養うならば、それは単にFoo1+Foo2+...Foonを評価し、リストの長さにわたってそれを分割し、:

mean自体は特定振る舞いを持っていませんnp.mean(a <=3)の値は3/7(最初の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 
関連する問題