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

两个数字之间的Python求和元素,python,arrays,numpy,sum,range,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)) 打印np.sum((a-2.0)) 这将返回2到-2之间的元素数 如何得到2和-2之间的元素之和???例如,我试过很多东西 np.sum(a[a >0.] & a[a<

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

a = rnd.randn(100)
print np.sum(a)
给出一个数组中元素的和

np.sum(a[a>0.])
给出大于0的元素之和

print np.sum((a < 2.0) & (a > -2.0))
打印np.sum((a<2.0)和(a>-2.0))
这将返回2到-2之间的元素数

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

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

np.sum(a[a>0.]&a[a
&
是一个按位运算符,不会给出正确的结果,相反,您需要使用
np.logical_和
来获得掩码数组。然后您可以将其作为索引传递给数组,以获得所需的项,然后将其传递给
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
[9]中的
:a=np.arange(-10,10)

在[10]:a[np.logical_和(a>-2,a-2,a中,你可以用一种非常基本的直接方式来做,比如:

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)
函数getSum(numaray、lowVal、highVal): mySum=0 对于范围内的i(len(numArray)):
如果(numArray[i]>=lowVal和numArray[i]可爱,谢谢