【问题标题】:Numpy: create a matrix from smaller matricesNumpy:从较小的矩阵创建矩阵
【发布时间】:2016-10-24 19:19:46
【问题描述】:

有没有办法使用 numpy 从较小的方阵 m 中创建方阵 M?

假设M的形状可以被m的形状整除(2x2):

 m = [[1, 2],
      [3, 4]]

从 m 开始,我想构建一个形状为 4x4 的矩阵,这样:

array([[ 1.,  2.,  1.,  2.],
       [ 3.,  4.,  3.,  4.],
       [ 1.,  2.,  1.,  2.],
       [ 3.,  4.,  3.,  4.]])

已创建。

我知道如何创建特定形状的矩阵并使用 标量对其进行初始化:

numpy.full((4,4), 0, dtype=numpy.int)

在这里,我想使用现有数组进行构建。如何实现(和高效)?

【问题讨论】:

    标签: python numpy matrix


    【解决方案1】:

    我们可以使用NumPy's Kronecker product -

    np.kron(np.ones((2, 2), dtype=int), m)
    

    示例运行 -

    In [140]: m
    Out[140]: 
    array([[1, 2],
           [3, 4]])
    
    In [141]: np.kron(np.ones((2, 2), dtype=int), m)
    Out[141]: 
    array([[1, 2, 1, 2],
           [3, 4, 3, 4],
           [1, 2, 1, 2],
           [3, 4, 3, 4]])
    

    【讨论】:

      【解决方案2】:

      使用np.tile:

      >>> np.tile(arr, (2, 2))
      array([[1, 2, 1, 2],
             [3, 4, 3, 4],
             [1, 2, 1, 2],
             [3, 4, 3, 4]])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多