我有代表许多数据点高度的值,例如:
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内的总数?
答案 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)