更新时间:2022-10-23 20:06:14
您应该使用 Kronecker积, numpy.kron :
计算Kronecker积,取得由第一缩放第二阵列块构成的复合阵列
块引用>导入numpy的是NP
一个= np.array([1,1],
[0,1]])
N = 2
np.kron(一,np.ones((N,N)))这给你想要什么:
阵列([1,1,1,1]
[1,1,1,1],
[0,0,1,1],
[0,0,1,1]])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:
array([[1, 1], [0, 1]])
I would like to scale the array to become 4x4:
array([[1, 1, 1, 1], [1, 1, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]])
That is, the value of each cell in the original array is copied into 4 corresponding cells in the resulting array. Assuming arbitrary array size and scaling factor, what's the most efficient way to do this?
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]])