我想分别沿轴0和轴1重复数组元素M和N次:
import numpy as np a = np.arange(12).reshape(3, 4) b = a.repeat(2, 0).repeat(2, 1) print(b) [[ 0 0 1 1 2 2 3 3] [ 0 0 1 1 2 2 3 3] [ 4 4 5 5 6 6 7 7] [ 4 4 5 5 6 6 7 7] [ 8 8 9 9 10 10 11 11] [ 8 8 9 9 10 10 11 11]]
这行得通,但是我想知道有没有更好的方法而无需创建临时数组。
您可以使用kronecker产品,请参阅numpy.kron:
numpy.kron
>>> a = np.arange(12).reshape(3,4) >>> print np.kron(a, np.ones((2,2), dtype=a.dtype)) [[ 0 0 1 1 2 2 3 3] [ 0 0 1 1 2 2 3 3] [ 4 4 5 5 6 6 7 7] [ 4 4 5 5 6 6 7 7] [ 8 8 9 9 10 10 11 11] [ 8 8 9 9 10 10 11 11]]
不过,您原来的方法也可以!