2015-10-17 2 views
0

Как добавить небольшой массив numpy в часть большого массива numpy? Моего кода, как:Добавление массивов numpy

import numpy as np 
x = np.ones((10, 15)) 

Я хочу, чтобы добавить массив 3 на 3 нп до середины или какого-то места, которое я могу назначить.

+0

Посмотрите на [ 'slicing'] (http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html#basic-slicing-and-indexing). – Divakar

ответ

0

Если вы добавляете, вы имеете в виду присвоение значений из матрицы 3x3 в свою матрицу x, то вы можете назначить ее на срез вашей матрицы x. Пример -

x[row:row+3,col:col+3] = np.array([[1,2,3],[4,5,6],[7,8,9]]) #Your 3x3 array on right side. 

Demo -

In [98]: x = np.ones((10,15)) 

In [99]: x[3:6,3:6] = np.array([[1,2,3],[4,5,6],[7,8,9]]) 

In [100]: x 
Out[100]: 
array([[ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 
     1., 1.], 
     [ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 
     1., 1.], 
     [ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 
     1., 1.], 
     [ 1., 1., 1., 1., 2., 3., 1., 1., 1., 1., 1., 1., 1., 
     1., 1.], 
     [ 1., 1., 1., 4., 5., 6., 1., 1., 1., 1., 1., 1., 1., 
     1., 1.], 
     [ 1., 1., 1., 7., 8., 9., 1., 1., 1., 1., 1., 1., 1., 
     1., 1.], 
     [ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 
     1., 1.], 
     [ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 
     1., 1.], 
     [ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 
     1., 1.], 
     [ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 
     1., 1.]]) 

Если на оных, вы имели в виду, чтобы добавить значения вверх на соответствующих индексов, вы можете использовать += в указанном выше назначении нарезания. Пример -

x[row:row+3,col:col+3] += np.array([[1,2,3],[4,5,6],[7,8,9]]) #Your 3x3 array on right side. 
Смежные вопросы