2017-06-05 6 views
2

これは非常に簡単だと確信しています。私は2つの数字の間のPythonの合計要素

np.sum(a[a>0.]) 

内の要素の合計を与えることは、このように[OK] 0

print np.sum((a < 2.0) & (a > -2.0)) 

よりも大きい要素の合計を与える

a = rnd.randn(100) 
print np.sum(a) 

をGoogleで検索すると、ここではなく、特定の答えを見つけました2と-2の間の要素の数を返します。

どうすれば、2と-2の間の要素の合計を得ることができますか?私は、などの例

np.sum(a[a >0.] & a[a<1.]) 

のために多くのものを試してみたと

答えて

4

&は、ビット演算子である:-(それを行うための正しい方法を見つけることができないと、あなたに適切な結果を与えるものではありません。代わりに、あなたは、あなたがsumに渡し、その後、所望の項目を取得するために、配列のインデックスとしてそれを渡すことができますマスク配列を取得するためにnp.logical_andを使用する必要があります。

In [9]: a = np.arange(-10, 10) 

In [10]: a[np.logical_and(a>-2,a<2)] 
Out[10]: array([-1, 0, 1]) 

In [11]: a[np.logical_and(a>-2,a<2)].sum() 
Out[11]: 0 
+0

ありがとうございます – gravity121

1

あなたはそれを行うことができますちょうど非常に基本的な直接的な方法で、次のようになります:

function getSum(numArray, lowVal, highVal): 
    mySum = 0 
    for i in range(len(numArray)): 
     if(numArray[i] >= lowVal and numArray[i] <= highVal): 
      mySum = mySum + numArray[i] 

    return mySum 

yourAnswer = getSum(a, -2, 2) 
+0

ありがとうございます – gravity121