numpy.tile

numpy.tile(A,reps)

通過重複reps次A來構造數組

如果reps有長度d,則結果將具有max(d,A的維度)的維度。

如果A的維度<d,則通過新加維度來將A提升爲d維。所以對於 shape(3,)數組爲了2-D複製可以使reps=(1,3),爲了三維複製可以使reps=(1,1,3)

如果A的維度>d,reps 的長度d被提升爲A的維度,並且向前補充的數字爲1,比如如果A是五維的,reps=(2,3),則實際上reps被轉化爲reps=(1,1,1,2,3)

參數:

A:array_like 
      輸入數組


reps: array_like
每一個維度的重複數

返回值:   

經過tile變換後的輸出數組


Examples

爲描述方便稱橫向擴展爲列擴展,縱向的擴展爲行擴展,
>>> a=numpy.array([1,2,3])
>>> numpy.tile(a,1)#爲1時不擴展
array([1, 2, 3])
>>> numpy.tile(a,(1,1))
array([[1, 2, 3]])
>>> numpy.tile(a,(1,2))#列擴展
array([[1, 2, 3, 1, 2, 3]])    
>>> numpy.tile(a,(2,1))    #行擴展
array([[1, 2, 3],
       [1, 2, 3]])
>>> numpy.tile(a,(1,1,1))
array([[[1, 2, 3]]])
>>> numpy.tile(a,(1,1,2))#列擴展
array([[[1, 2, 3, 1, 2, 3]]])
>>> numpy.tile(a,(1,2,1))#行擴展
array([[[1, 2, 3],
        [1, 2, 3]]])
>>> numpy.tile(a,(2,1,1))#第三維擴展
array([[[1, 2, 3]],


       [[1, 2, 3]]])
>>> numpy.tile(a,(1,2,2))
array([[[1, 2, 3, 1, 2, 3],#列擴展和行擴展
        [1, 2, 3, 1, 2, 3]]])

以上是a的維度小於等於reps的長度d時的情況,總結reps=(高維擴展,....,第三維擴展,行擴展,列擴展)



以下是a的維度大於reps的長度d時的情況。

>>> b=numpy.array([[2,3],
[3,4]])
>>> numpy.tile(b,2)
array([[2, 3, 2, 3],#此時reps=(1,2)列擴展,行不擴展
       [3, 4, 3, 4]])
>>> numpy.tile(b,3)#此時reps=(1,3)列擴展,行不擴展
array([[2, 3, 2, 3, 2, 3],
       [3, 4, 3, 4, 3, 4]])




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章