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]])