У меня есть список координат x, y. Значения x близки друг к другу, но не совпадают. Я хотел бы связать значения х вместе в пределах диапазона, а затем взять среднее значение значений у в каждом бине. Я хочу, чтобы конечные результаты представляли собой два одномерных массива - одно из значений 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's stats.binned_statistic
, но не увенчались успехом, так как я не уверен, как указать размер корзины. В приведенном ниже коде я поместил 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)