How to “scale” a numpy array?

后端 未结 4 2062
天涯浪人
天涯浪人 2020-12-08 07:24

I would like to scale an array of shape (h, w) by a factor of n, resulting in an array of shape (h*n, w*n), with the.

Say that I have a 2x2 array:

ar         


        
4条回答
  •  旧巷少年郎
    2020-12-08 07:50

    You should use the Kronecker product, numpy.kron:

    Computes the Kronecker product, a composite array made of blocks of the second array scaled by the first

    import numpy as np
    a = np.array([[1, 1],
                  [0, 1]])
    n = 2
    np.kron(a, np.ones((n,n)))
    

    which gives what you want:

    array([[1, 1, 1, 1],
           [1, 1, 1, 1],
           [0, 0, 1, 1],
           [0, 0, 1, 1]])
    

提交回复
热议问题