根据另一个数组的仓对一个numpy数组求和

时间:2018-07-18 01:52:00

标签: arrays python-3.x histogram

我有代表许多数据点高度的值,例如:

arr = np.array([1.0,1.2,1.6,2.3,2.2,2.6,2.8,2.2,3.7,3.3......7.1,7.7,7.3,7.9,7.5,7.3,8.2,9.9,9.3,9.5,10.0,10.2])

与此相关联的是其区域的另一个数组:

arr2 = np.array([50,30,25,21,36,87,54,34,67,43,21,45,......25,46,78,42])

arr和arr2都具有相同的形状。

我可以使用以下命令从arr获取直方图:

np.hist(arr,bins=11,range=(0,11)) 

这给了我每个垃圾箱的数量,但是我想要的是每个垃圾箱的总面积(来自arr2)。

例如对于高度> = 1和<2,我想要总面积,在这种情况下为:

50+30+25 = 105

是否有功能或Python方法从arr2获取属于arr创建的bin内的总数?

1 个答案:

答案 0 :(得分:0)

我通过使用numpy.histogram实现了这一目标。使用权重使我能够基于arr的bin对arr2中的值求和,例如在文档中:https://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

所以我的新代码是:

n, bins = numpy.histogram(arr, bins=100, range=(0,100), weights=arr2)