#python #python-3.x #numpy #scipy #binning
#python #python-3.x #numpy #scipy #объединение
Вопрос:
Я пытаюсь объединить данные, связав их на основе ближайшей ячейки, а не того, что кажется стандартным способом, при numpy.digitize
котором данные помещаются в ячейку выше или ниже значения на основе right=True/False
аргумента.
В настоящее время я реализовал следующее
bins = np.array([-100,-90,-80,-70,-60,-50,-40,-30,-20,-10,0,10,20,30,40,50,60,70,80,90,100])
np.digitize(imbalance, bins, right=False)
Где imbalance
— это число где-то между -100 и 100. В настоящее время этот метод будет помещаться в ячейку только 0
тогда, когда imbalance
значение находится между -10 и 0.
Например:
np.digitize(1, bins, right=False)
возвращает как привязанный к 10
, а не к 0
.
Я хотел бы, чтобы любое число от -5 до 5 было помещено в ячейку 0 и так далее. Судя по документации numpy.digitize
, это невозможно. Я изучил scipy.stats.binned_statistic
, но я не вижу, как это сделать, прочитав документацию там.
Заранее спасибо!
Комментарии:
1. Вы могли бы просто выполнить np.digitize(дисбаланс 5, ячейки, right = False).
2. Это хорошее и простое решение, удивило, что я никогда не думал об этом! Спасибо.