Title函数
函数形式: tile(A,rep)
功能:重复A的各个维度
参数类型:
- A: Array类的都可以
- rep:A沿着各个维度重复的次数(由外至内)
Note:返回的结果的维度是max(A.ndim,req.length),出现三种情况
1、A.ndim=req.length
如:
tile([[1],[2]],(1,2)) , A为[[1],[2]] d为2,此时方法返回结果为,外层2维为原来的1倍,内层1维为原来的2倍, 即[[1],[2]]à [[1],[2]]à [[1,1],[2,2]]
tile([[1],[2]],(3,1)) , A为[[1],[2]], d为2,此时方法返回结果为,外层2维为原来的3倍,内层1维为原来的1倍, 即[[1],[2]] à[[1],[2],[1],[2],[1],[2]]à [[1],[2],[1],[2],[1],[2]]
tile([[1],[2]],(2,2)) , A为[[1],[2]], d为2,此时方法返回结果为,将外层2维为原来的2倍,内层1维为原来的2倍, 即[[1],[2]] à[[1],[2],[1],[2]]à [[1,1],[2,2],[1,1],[2,2]]
2、A.ndim<req.length
如:
tile([1],(2,2)), A为[[1]],d为2,此时方法返回结果肯定为2维,此时会将[1]当做[[1]]对待,根据d的大小自动将其升维,然后按照相等情况处理,即tile([1],(2,2))à tile([[1]],(2,2))à[[1]]à[[1],[1]]à[ [1,1],[1,1]]
3、A.ndim>req.length
如:
tile([[[1,2]],[[2,2]]],(2,2)) , A为[[[1,2]],[[2,2]]],d为2,相当于tile([[[1,2]],[[2,2]]],(1,2,2))此时方法返回结果为,最外维为原来一倍,次内维(比最内维高一维)为原来的2倍,最内维为原来的2倍, 即[[[1,2]],[[2,2]]]à [[[1,2]],[[2,2]]]à [[[1,2], [1,2]],[[2,2], [2,2]]]à [[[1,2, 1,2], [1,2, 1,2]],[[2,2, 2,2], [2,2, 2,2]]]
下面是源码里的例子:
>>> a = np.array([0, 1, 2])
>>> np.tile(a, 2)
array([0, 1, 2, 0, 1, 2]) //1维单纯扩大1倍
>>> np.tile(a, (2, 2))
array([[0, 1, 2, 0, 1, 2],[0, 1, 2, 0, 1, 2]]) //相当于tile([[0,1,2]],(2,2))
>>> np.tile(a, (2, 1, 2))
array([[[0, 1, 2, 0, 1, 2]], [[0, 1, 2, 0, 1, 2]]]) //相当于tile([[[0,1,2]]],(2,1,2))
>>> b = np.array([[1, 2], [3, 4]])
>>> np.tile(b, 2)
array([[1, 2, 1, 2],[3, 4, 3, 4]]) //相当于tile([[1, 2], [3, 4]],(1,2))
>>> np.tile(b, (2, 1))
array([[1, 2],[3, 4],[1, 2], [3, 4]]) //相等情况下的扩大
>>> c = np.array([1,2,3,4])
>>> np.tile(c,(4,1))
array([[1, 2, 3, 4],[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]) //相当于tile([[1,2,3,4]],(4,1))