2010-08-24 3 views
2

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

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

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

и

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

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

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

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

РЕДАКТИРОВАТЬ:

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

ответ

1

Для изменения B вместо

B[:2,:2] += A 

иначе

C = B.copy() 
C[:2,:2] += A 
+0

Отлично! есть ли простой способ добавить обертку? B [-2: 2, -2: 2], похоже, ничего не делает значимым = ( –

Смежные вопросы