Python | 复制矩阵:np.repeat 与 np.tile的区别

1. 介绍

np.repeat()np.tile() 两个函数都能实现对矩阵进行复制操作;

其不同在于:

np.repeat() 函数实现的是对矩阵按照行或者列,对其中的某一行(列)复制N次,接着复制下一行(列),知道矩阵的每一行(列)复制结束;

np.tile() 函数实现对矩阵整体复制,将矩阵整体复制N次,放到新的矩阵中。

PS:不好理解没关系,看一遍程序结果就知道了。

2. np.repeat()

用法:

output = np.repeat(data, repeats=m, axis=n)

其中:

data 表示带复制的矩阵;

n 取0或者1,0表示按行复制,1表示按列复制;

m 表示沿着行(列)的方向复制m次。

测试示例(python程序):

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

3. np.tile()

用法:

output = np.tile(data, (m,n))

其中:
data 表示带复制的矩阵;

m 表示沿着行的方向复制m次矩阵;

n 表示沿着列的方向复制n次矩阵;

测试示例(python程序):

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

你可能感兴趣的:(python,学习总结,python)