Добавление массива в NumPy в указанном месте - PullRequest
2 голосов
/ 24 августа 2010

Есть ли быстрый способ добавить массив A в массив B в указанном месте ?

Например, если

B = [
    [0, 1, 2],
    [2, 3, 4],
    [5, 6, 7]
]

и

A = [
    [2, 2],
    [2, 2]
]

и я хочу добавить A к B, начиная с точки (0, 0), чтобы получить

C = [
    [2, 3, 2],
    [4, 5, 4],
    [5, 6, 7],
]

Конечно, я могу сделать это, расширяя массив A, чтобы он соответствовал форме B, а затем используя numpy.roll, но это кажется излишне медленным, если размер A намного меньше размера B.

EDIT:

потенциально с переносом - то есть таким, что нижний ряд A добавляется в верхний ряд B, а верхний ряд A добавляется в нижний ряд B

1 Ответ

1 голос
/ 24 августа 2010

Для изменения B на месте

B[:2,:2] += A

в противном случае

C = B.copy()
C[:2,:2] += A
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...