numpy.roll#
- numpy.roll(a, shift, axis=None)[source]#
沿著給定軸滾動陣列元素。
滾動超出最後位置的元素會重新從第一個位置引入。
- 參數:
- aarray_like
輸入陣列。
- shiftint 或 整數元組
元素位移的位數。如果是元組,則 axis 必須是相同大小的元組,並且每個給定軸都會位移相應的數量。如果 axis 是整數元組而 shift 是整數,則所有給定軸都使用相同的值。
- axisint 或 整數元組,選填
元素位移所沿著的軸或軸。預設情況下,陣列會在位移前展平,之後會還原為原始形狀。
- 回傳值:
- resndarray
輸出陣列,形狀與 a 相同。
另請參閱
rollaxis
向後滾動指定的軸,直到它位於給定位置。
註解
支援同時在多個維度上滾動。
範例
>>> import numpy as np >>> x = np.arange(10) >>> np.roll(x, 2) array([8, 9, 0, 1, 2, 3, 4, 5, 6, 7]) >>> np.roll(x, -2) array([2, 3, 4, 5, 6, 7, 8, 9, 0, 1])
>>> x2 = np.reshape(x, (2, 5)) >>> x2 array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) >>> np.roll(x2, 1) array([[9, 0, 1, 2, 3], [4, 5, 6, 7, 8]]) >>> np.roll(x2, -1) array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 0]]) >>> np.roll(x2, 1, axis=0) array([[5, 6, 7, 8, 9], [0, 1, 2, 3, 4]]) >>> np.roll(x2, -1, axis=0) array([[5, 6, 7, 8, 9], [0, 1, 2, 3, 4]]) >>> np.roll(x2, 1, axis=1) array([[4, 0, 1, 2, 3], [9, 5, 6, 7, 8]]) >>> np.roll(x2, -1, axis=1) array([[1, 2, 3, 4, 0], [6, 7, 8, 9, 5]]) >>> np.roll(x2, (1, 1), axis=(1, 0)) array([[9, 5, 6, 7, 8], [4, 0, 1, 2, 3]]) >>> np.roll(x2, (2, 1), axis=(1, 0)) array([[8, 9, 5, 6, 7], [3, 4, 0, 1, 2]])