Увеличивающиеся значения в матрице с цифрами ниже определенного показателя - PullRequest
0 голосов
/ 26 мая 2018

Я пытаюсь рассчитать кумулятивный подсчет вероятностей с использованием двумерных матриц.Когда объект имеет значение x для оси x и y для оси y, я добавляю к ячейкам, индекс которых меньше или равен (x, y)

, т.е. объект имеет 1,1 виндексная ячейка 3x3.Матрица должна выглядеть следующим образом:

[1][1][0]
[1][1][0]
[0][0][0]

Проблема в том, что я не могу сделать это, просто индексируя как matrix[:1][:1].

Если возможно.Я не хочу переключаться на другую библиотеку, кроме numpy, потому что она требует слишком много работы.Есть ли какой-нибудь питонический способ сделать это без использования укрощения для циклов?

1 Ответ

0 голосов
/ 26 мая 2018

Вы должны выполнить индексацию за один шаг , то есть [i_expr,j_expr], а не [i_expr][j_expr].(Форма [][] работает только для скалярных индексов и даже при плохом стиле.) Вы также должны добавить 1, если хотите включить границы.

>>> bins = np.zeros((5, 5), int)
>>> i, j = 1, 1
>>> bins[:i+1, :j+1] += 1
>>> bins
array([[1, 1, 0, 0, 0],
       [1, 1, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0]])
...