1.Numpy的 tile() 函数,就是将原矩阵横向、纵向地复制。tile 是瓷砖的意思,顾名思义,这个函数就是把数组像瓷砖一样铺展开来。
举个例子,原矩阵:
import numpy as np mat = np.array([[1,2], [3, 4]])
横向:
print(np.tile(mat,(1, 4))) #等同于 print(np.tile(mat, 4))
[[1 2 1 2 1 2 1 2] [3 4 3 4 3 4 3 4]] [[1 2 1 2 1 2 1 2] [3 4 3 4 3 4 3 4]]
纵向:
np.tile(mat, (3, 1))
array([[1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]])
横向 + 纵向
np.tile(mat, (3, 4))
array([[1, 2, 1, 2, 1, 2, 1, 2], [3, 4, 3, 4, 3, 4, 3, 4], [1, 2, 1, 2, 1, 2, 1, 2], [3, 4, 3, 4, 3, 4, 3, 4], [1, 2, 1, 2, 1, 2, 1, 2], [3, 4, 3, 4, 3, 4, 3, 4]])
2. repeat函数功能:对数组中的元素进行连续重复复制
用法有两种:
1) numpy.repeat(a, repeats, axis=None)
2) a.repeats(repeats, axis=None)
参数:
a : array_like 输入数组。
repeats: int或int数组 每个元素的重复次数。 广播重复以适合给定轴的形状。
axis : int,可选 沿其重复值的轴。默认情况下,使用展平的输入数组,并返回一个平面输出数组。
返回: repeated_array : ndarray 输出阵列,其具有相同的形状作为一个,除了沿给定轴。
from numpy import * repeat(7.,4) ==> array([7., 7., 7., 7.] a=array([10,20]) a.repeat([3,2]) ==>array([10, 10, 10, 20, 20]) repeat(a,[3,2]) ==>array([10, 10, 10, 20, 20]) a=array([[10,20],[30,40]]) a.repeat([3,2],axis=0) ==> array([[10, 20], [10, 20], [10, 20], [30, 40], [30, 40]]) a.repeat([3,2],axis=1) ==> array([[10, 10, 10, 20, 20], [30, 30, 30, 40, 40]])