2017-06-05 20 views
2

我相信这很简单。我搜索谷歌和这里没有找到具体的答案两个数字之间的Python求和元素

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

给出一个

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

元素的总和即为元素比0

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

OK更大所以这个总和返回2和-2之间的元素数量。

如何获得2和-2之间的元素的总和?我试过很多东西,例如

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

等,并不能找到正确的方式做它:-(

回答

4

&是位运算符,不会给你正确的结果,相反,您需要使用np.logical_and获得掩码数组然后,你可以把它作为索引到阵列中为了得到渴望的项目,然后将它传递给sum

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

相关问题