Binned_statistic_2d автоматически создает интервалы на границах каждого измерения, чтобы улавливать значения вне диапазона, что делает номера интервалов менее полезными, если меня интересуют только значения в пределах моего заданного диапазона. Есть ли способ присвоить номера ячеек только ячейкам в пределах диапазона?
Например:
x = [0.5, 0.5, 1.5]
y = [0.5, 1.5, 1.5]
binx = [0.0, 1.0, 2.0]
biny = [0.0, 1.0, 2.0]
ret = scipy.stats.binned_statistic_2d(x, y, None, "count", bins = [binx, biny])
ret.statistic
ret.binnumber
возвращает
array([[1., 1.],
[0., 1.]])
array([ 5, 6, 10])
из-за "выходных ячеек" "
0 | 1 | 2 | 3
-----+-----+-----+-----
4 | 5 | 6 | 7
-----+-----+-----+-----
8 | 9 | 10 | 11
-----+-----+-----+-----
12 | 13 | 14 | 15
Что я могу сделать, чтобы вместо этого вернуть array([ 0, 1, 3])
и вырезать только интересующие вас подборки?
0 | 1
-----+-----
2 | 3
Я чувствую, что есть способ сделать это используя expand_binnumbers = True
и выполняя некоторые вычисления с индексами x и y, но, может быть, есть более простой способ?