配列を指定した方向にずらしてみます。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]])