【问题标题】: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_ 执行 4 x 4 矩阵运算?我必须将一个小(4 x 4)矩阵插入到大矩阵(10 x 10)中
【发布时间】:2022-01-04 05:54:13
【问题描述】:

如何进行矩阵运算,使其产生如下结果:

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

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

谢谢。

【问题讨论】:

    标签: python arrays numpy matrix indexing


    【解决方案1】:

    使用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]])
    

    可以使用相同的索引来选择非零值:

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

    好的,我要插入一个 (2,2) 数组,因为这些是明显的非零值。对于其他任何情况,只需调整提供给ix_ 的两个列表/数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      相关资源
      最近更新 更多