【发布时间】:2020-06-04 01:56:24
【问题描述】:
我有一个 x,y 坐标列表。 x 值接近但不相同。我想在一个范围内将 x 值组合在一起,然后取每个 bin 中 y 值的平均值。我希望最终结果是两个一维数组——一个是合并的 x 值,另一个是相关的 y 平均值。
例如,对于list = ((1.0, 10.2), (1.3, 10.1), (1.6, 10.8), (2.3, 12.0), (2.4, 12.7)),
我希望输出为:x = [1.0, 1.5, 2.0] 和 y = [10.15, 10.8, 12.35]。
在下面的代码中,我尝试了 scipy 的 stats.binned_statistic,但没有成功,因为我不确定如何指定 bin 大小。在下面的代码中,我在每个 bin 中放置了 10 个元素以尝试使其工作,但实际上我想指定一个范围,例如将彼此相距 0.5 范围内的所有数字合并在一起。
我还查看了numpy.digitize,但如果那是我正在寻找的,则不是。
import numpy as np
from scipy import stats
x = [x_values]
y = [corresponding_y_values]
test = stats.binned_statistic(x, y, 'mean', bins=(len(x))/10)
plt.plot(test)
【问题讨论】:
标签: python list range mean binning