Python总和两个数字之间的元素

时间:2017-06-05 18:32:45

标签: python arrays numpy sum range

我确信这很简单。我搜索谷歌和这里,但没有找到具体的答案

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

给出了

中元素的总和
np.sum(a[a>0.])

给出大于0的元素总和

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

好的,这样就可以返回2到-2之间的元素数。

如何得到2和-2之间的元素之和?我尝试了很多东西,例如

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

等,无法找到正确的方法: - (

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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)
相关问题