tile
tile(數組,重復次數)
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]) """