如何使用np.ix_执行4乘4矩阵运算?我必须在大矩阵(10 x 10)中插入一个小(4 x 4)矩阵

how to use np.ix_ to execute 4 by 4 matrix operations ? i have to insert a small (4 by 4) matrix in to big matrix (10 by 10)

如何进行矩阵运算,以便产生类似这样的结果:

图像中显示的第一个矩阵是错误输出,第二个矩阵(下方)是预期输出

我发现可以使用 np.ix_ 来完成,但我无法应用它。

谢谢。

使用 np.ix_ 有什么令人困惑的地方?

In [529]: res = np.zeros((10,10),int)
In [530]: res[np.ix_([1,7],[1,9])]=[[1,1],[1,-1]]
In [531]: res
Out[531]: 
array([[ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
       [ 0,  1,  0,  0,  0,  0,  0,  0,  0,  1],
       [ 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,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
       [ 0,  1,  0,  0,  0,  0,  0,  0,  0, -1],
       [ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
       [ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0]])

相同的索引可用于 select 非零值:

In [532]: res[np.ix_([1,7],[1,9])]
Out[532]: 
array([[ 1,  1],
       [ 1, -1]])

好的,我要插入一个 (2,2) 数组,因为它们显然是非零值。对于任何其他,只需调整提供给 ix_ 的两个 lists/arrays。