如何使用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。
如何进行矩阵运算,以便产生类似这样的结果:
图像中显示的第一个矩阵是错误输出,第二个矩阵(下方)是预期输出
我发现可以使用 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。