2015-10-17 88 views
0

如何将小numpy数组添加到大numpy数组的一部分? 我的代码是这样的:添加numpy数组

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

我想一个3×3 NP阵列添加到中间,或者我可以指定某个位置。

+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. 

演示 -

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.