zoukankan      html  css  js  c++  java
  • Python中numpy中tile和repeat用法和区别

    tile

    1. tile(数组,重复次数)
    2. tile(数组,(第1维重复次数,第2维重复次数,...,第n维重复次数))

    例子

    tile(数组,(沿着第1维的轴重复次数,沿着第2维的轴重复次数,…,沿着第n维的轴重复次数))

    我看了下numpy中tile()函数的源码,它是这么做的。
    (第1维重复次数,第2维重复次数,...,第n维重复次数)这是个元组,复制的顺序是从最后那个维度开始往前执行复制操作。
    假如是tile(a,(2,4,3),它先将a复制3次将结果保存到a,然后复制4次然后增加一维再保存到a,然后再复制2次然后增加一维返回结果。
    这个元组维度和目标数组维度一样,因为它是要沿着某个轴进行复制。看下面这个例子

    a = np.array([0,1,2])
    np.tile(a,(2,3))
    """
    从后面往前面遍历元组(2,3)。先将a复制3次,然后将复制后的结果保存到a=[0, 1, 2, 0, 1, 2, 0, 1, 2]。
    再复制2次。得到目标数组。
    array([[0, 1, 2, 0, 1, 2, 0, 1, 2],
           [0, 1, 2, 0, 1, 2, 0, 1, 2]])
    """
    
    np.tile(a,(3,1))
    """
    从后面往前遍历元组(3,1),先将a复制1次,然后将复制的结果保存到a。再复制3次。
    array([[0, 1, 2],
           [0, 1, 2],
           [0, 1, 2]])
    """
    

    tile(数组,重复次数)=tile(数组,(重复次数,))

    a = np.array([0,1,2])
    np.tile(a,3)
    """
    array([0, 1, 2, 0, 1, 2, 0, 1, 2])
    """
    
    知乎 https://www.zhihu.com/people/yuanmuou/activities
  • 相关阅读:
    写在最前面
    Bzoj 2281 [Sdoi2011]黑白棋 题解
    bzoj3125: CITY 题解
    CDQZ 集训大总结
    CDQZ集训DAY10 日记
    CDQZ集训DAY9 日记
    CDQZ集训DAY7 日记
    CDQZ集训DAY6 日记
    CDQZ集训DAY5 日记
    CDQZ集训DAY4 日记
  • 原文地址:https://www.cnblogs.com/ailitao/p/11047305.html
Copyright © 2011-2022 走看看