Python中函数的Binning值(numpy)

时间:2014-05-11 15:10:38

标签: python arrays numpy binning

让我揭露我的问题:

我用Python和Numpy编写了一个软件,它生成了两个名为X和Y的numpy数组。

此值与函数相关:Y = f(X)

X值属于区间[0; 1]。

numpy.histogram允许在此间隔中对预定义的等间距分箱中的X值进行分箱。

我想要做的是在不进行“for”循环的情况下对每个bin对应的Y值求和。

非常感谢您的回答。

1 个答案:

答案 0 :(得分:2)

假设您的y值位于相应的位置,即y[i] = f(x[i]),那么您可以使用numpy.digitize来查找x值所属的bin的索引并使用这些索引来总结相应的y值。

numpy示例(忽略值不在[0; 1]内):

>>> x = np.array([0.2, 6.4, 3.0, 1.6])
>>> bins = np.array([0.0, 1.0, 2.5, 4.0, 10.0])
>>> inds = np.digitize(x, bins)
>>> inds
array([1, 4, 3, 2])

然后总结y中的值:

>>> aggregate = [y[inds == i].sum() for i in np.unique(inds)]

如果您正在努力创建自己的垃圾箱,请查看numpy.linspace

numpy.linspace(0, 1, num=50, endpoint=True)