NumPyの使い方(14) 繰り返し
NumPyの繰り返しrepeat()、tile()について。
np.repeat()
配列の要素を繰り返す。
axisを省略すると1次元にflattenされる。
import numpy as np a1 = np.arange(4) print(a1.repeat(2)) # [0 0 1 1 2 2 3 3] print(a1.repeat([3, 2, 1, 0])) # [0 0 0 1 1 2] a2 = np.arange(6).reshape(2, 3) print(a2.repeat(2, axis=0)) # [[0 1 2] # [0 1 2] # [3 4 5] # [3 4 5]] print(a2.repeat(2, axis=1)) # [[0 0 1 1 2 2] # [3 3 4 4 5 5]] print(a2.repeat([1, 2, 3], axis=1)) # [[0 1 1 2 2 2] # [3 4 4 5 5 5]] # axisを省略すると1次元化 print(a2.repeat(2)) # [0 0 1 ..., 4 5 5] print(np.repeat(a2, 2)) # 関数でも表現できる # [0 0 1 ..., 4 5 5]
np.tile()
タイル状に敷き詰める。
a1 = np.arange(4) print(np.tile(a1, 2)) # [0 1 2 3 0 1 2 3] print(np.tile(a1, (2, 3))) # [0 1 2 3 0 1 2 3] # [[0 1 2 ..., 1 2 3] # [0 1 2 ..., 1 2 3]] print(np.tile(a1, (1, 2, 3))) # [[[0 1 2 ..., 1 2 3] # [0 1 2 ..., 1 2 3]]] a2 = np.arange(6).reshape(2, 3) print(np.tile(a2, 2)) # [[0 1 2 0 1 2] # [3 4 5 3 4 5]] print(np.tile(a2, (3, 2))) # [[0 1 2 0 1 2] # [3 4 5 3 4 5] # [0 1 2 0 1 2] # [3 4 5 3 4 5] # [0 1 2 0 1 2] # [3 4 5 3 4 5]]