np.repeat()
和 np.tile()
两个函数都能实现对矩阵进行复制操作;
其不同在于:
np.repeat()
函数实现的是对矩阵按照行或者列,对其中的某一行(列)复制N次,接着复制下一行(列),知道矩阵的每一行(列)复制结束;
np.tile()
函数实现对矩阵整体复制,将矩阵整体复制N次,放到新的矩阵中。
PS:不好理解没关系,看一遍程序结果就知道了。
output = np.repeat(data, repeats=m, axis=n)
其中:
data
表示带复制的矩阵;
n
取0或者1,0表示按行复制,1表示按列复制;
m
表示沿着行(列)的方向复制m次。
import numpy as np
data = np.eye(3,4)
new_data = np.repeat(data, repeats=3, axis=0)
数据data为:
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]]
利用np.repeat()输出为:
[[1. 0. 0. 0.]
[1. 0. 0. 0.]
[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 1. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 1. 0.]
[0. 0. 1. 0.]]
output = np.tile(data, (m,n))
其中:
data
表示带复制的矩阵;
m
表示沿着行的方向复制m次矩阵;
n
表示沿着列的方向复制n次矩阵;
import numpy as np
data = np.eye(3,4)
new_data = np.tile(data, (2,1))
数据data为:
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]]
np.tile(data, (2,1))
输出为:
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]]