tile(A,reps)、numpy.tile(A,reps)使用"/>
np.tile(A,reps)、numpy.tile(A,reps)使用
np.tile(A,reps)、numpy.tile(A,reps)使用
函数作用为在输入的数组A的维度上进行复制操作,不改变原数组A。
Parameters:
A:输入数组
reps:A在每个维度上的复制倍数(复制为原来的几倍)
函数的使用
reps的长度记为d
首先确定A的维度和d的大小关系
(1)当A.ndim > d时:
扩展reps的长度d至A的维数。例如A的shape为(2,3),而reps为(2),则可将reps视为(1,2)。
import numpy as npa = np.array([[0, 1, 2],[3,4,5]])
b=np.tile(a, (2))
c=np.tile(a, (1,2))
print(a.ndim)
print(b)
print(c)
print(a)
此处a的维度为2*3,reps为(2)则可将reps视为(1,2)即在a的第一个维度上复制到原来的1倍,在a的第二个维度上复制到原来的两倍,不改变原数组a。
2
[[0 1 2 0 1 2][3 4 5 3 4 5]][[0 1 2 0 1 2][3 4 5 3 4 5]]
[[0 1 2][3 4 5]]
综上,可以将reps为(2)则可将reps视为(1,2)进行操作,也可知道reps的值是从A的最后一个维度开始对应的。
(2)当A.ndim < d时:
会将A扩展为d维,例如A.shape为(2,3),reps为(2,3,4),则A.shape会被扩展为(1,2,3),再进行复制操作,不改变原数组a。
import numpy as npa = np.array([[0, 1, 2],[3,4,5]])
b=np.tile(a, (2,3,4))
print(a.ndim)
print(b)
print(a)
2
[[[0 1 2 0 1 2 0 1 2 0 1 2][3 4 5 3 4 5 3 4 5 3 4 5][0 1 2 0 1 2 0 1 2 0 1 2][3 4 5 3 4 5 3 4 5 3 4 5][0 1 2 0 1 2 0 1 2 0 1 2][3 4 5 3 4 5 3 4 5 3 4 5]][[0 1 2 0 1 2 0 1 2 0 1 2][3 4 5 3 4 5 3 4 5 3 4 5][0 1 2 0 1 2 0 1 2 0 1 2][3 4 5 3 4 5 3 4 5 3 4 5][0 1 2 0 1 2 0 1 2 0 1 2][3 4 5 3 4 5 3 4 5 3 4 5]]][[0 1 2][3 4 5]]
更多推荐
np.tile(A,reps)、numpy.tile(A,reps)使用
发布评论