【问题标题】:Binning values of a function in Python (numpy)Python中函数的分箱值(numpy)
【发布时间】:2014-05-11 15:10:37
【问题描述】:

让我暴露我的问题:

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

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

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

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

我想做的是将每个 bin 对应的 Y 值相加,而不进行“for”循环。

非常感谢您的回答。

【问题讨论】:

  • 您是否将 X 的值分配给 np.histogram() bins 参数?

标签: python arrays numpy binning


【解决方案1】:

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

【讨论】:

  • 很好,如果没有示例代码,我无法从文本描述中找出 OP 的问题。 ...更多咖啡!
猜你喜欢
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 1970-01-01
  • 1970-01-01
  • 2017-07-31
  • 1970-01-01
相关资源
最近更新 更多