Объединение данных по обе стороны от ячейки в Python

#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. Это хорошее и простое решение, удивило, что я никогда не думал об этом! Спасибо.