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]]
文章目录