Numpy:从较小的矩阵创建矩阵

3

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

我想使用现有的数组进行构建。如何实现这一点(并且高效)?

2个回答

5
我们可以使用 NumPy的Kronecker积 -
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]])

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接