python - Python 中函数的分箱值 (numpy)

标签 python arrays numpy binning

让我揭露我的问题:

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

这些值作为函数相关:Y = f(X)

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

numpy.histogram 允许在此间隔内将 X 值分箱到预定义的等间隔箱中。

我想做的是对每个 bin 对应的 Y 值求和,而不执行“for”循环。

非常感谢您的回答。

最佳答案

假设您的 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)

关于python - Python 中函数的分箱值 (numpy),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23594262/

相关文章:

Python,如何合并2个pandas DataFrame

python - 无法在 Pycharm 中安装软件包

Python str() 双引号字符串

python - 用零填充 3d numpy 图像数组

python - 使用 numpy/scipy 最小化 Python multiprocessing.Pool 中的开销

Python 3.4 和 2.7 : Cannot install numpy package for python 3. 4

python - 在 Python 中将字符串拆分为 2

javascript - 关于 JavaScript 的 slice 和 splice 方法的问题

java - 从对象的 ArrayList 中检索值的数组 []

javascript - 格式化数组中的数据