Python tile函数详细解释

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))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值