【Numpy】配列を指定した方向にずらす np.roll

配列を指定した方向にずらしてみます。np.rollを使います。
さっそくドキュメントのサンプルを元に見てみます。

サンプルコード

1次元の場合

>>> np.arange(5)
array([0, 1, 2, 3, 4])
>>> arr = np.arange(5)
>>> arr
array([0, 1, 2, 3, 4])

# 右に2つずらす
>>> np.roll(arr, 2)
array([3, 4, 0, 1, 2])

# 左に1つずらす
>>> np.roll(arr, -1)
array([1, 2, 3, 4, 0])

複数次元ある場合

複数次元の場合にはaxisで次元指定します。

>>> x = np.arange(6).reshape((2,3))
>>> x
array([[0, 1, 2],
       [3, 4, 5]])
# axis=0の時、行を1ずつずらす
>>> np.roll(x, 1, axis=0)
array([[3, 4, 5],
       [0, 1, 2]])
# axis=1の時、列を1ずつずらす
>>> np.roll(x, 1, axis=1)
array([[2, 0, 1],
       [5, 3, 4]])

参考文献

タイトルとURLをコピーしました