np.tile用于创造数组
np.tile用于创造数组 Numpy的 tile() 函数,就是将原矩阵横向、纵向地复制。
tile(铺地板的材料,(铺几行,铺几列))
基本操作:
原矩阵:
mat = array([[1,2], [3, 4]])
横向:
tile(mat, (1, 4))
# 等同于
tile(mat, 4)
结果:
[[1 2 1 2 1 2 1 2]
[3 4 3 4 3 4 3 4]]
纵向:
tile(mat, (3, 1))
结果:
[[1 2]
[3 4]
[1 2]
[3 4]
[1 2]
[3 4]]
横向 + 纵向
tile(mat, (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]
[1 2 1 2 1 2 1 2]
[3 4 3 4 3 4 3 4]]
进阶操作:
可变的材料
不变化形状
col = np.tile(np.arange(0, 5), 5)
ans:
[0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4]
横向变化形状
col = np.tile(np.arange(0, 5), 5).reshape(-1, 5)
ans:
[[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]
[0 1 2 3 4]]
纵向,变化形状
这里稍微解释一下,我们是先把材料reshape成了1个一行的样子,总共5行,然后再横着铺,就成这样了
row = np.tile(np.arange(0, 5).reshape(-1, 1), 5)
ans:
[[0 0 0 0 0]
[1 1 1 1 1]
[2 2 2 2 2]
[3 3 3 3 3]
[4 4 4 4 4]]