2016-11-27 1 views
2

Есть ли какой-либо быстрый и простой способ вставить небольшую матрицу в центр (или любой другой индекс x, y) другой, более крупной матрицы с использованием numpy или scipy?
То есть, скажем, у меня есть матрицавставить матрицу в центр другой матрицы в python

A = [1 2] 
    [3 4] 

и матрица

B = [0 0 0 0 0 0] 
     [0 0 0 0 0 0] 
     [0 0 0 0 0 0] 
     [0 0 0 0 0 0] 
     [0 0 0 0 0 0] 
     [0 0 0 0 0 0] 

Я хочу, чтобы вставить в центр B, как так:

C = [0 0 0 0 0 0] 
     [0 0 0 0 0 0] 
     [0 0 1 2 0 0] 
     [0 0 3 4 0 0] 
     [0 0 0 0 0 0] 
     [0 0 0 0 0 0] 

ответ

8

Вы можете использовать кусочек Numpy в нотации.

nb = B.shape[0] 
na = A.shape[0] 
lower = (nb) // 2 - (na // 2) 
upper = (nb // 2) + (na // 2) 
B[lower:upper, lower:upper] = A 
Смежные вопросы