Python numpy沿单轴滚动
我有一个带有二进制值的numpy数组,我需要按以下方式更改:每个元素的值必须向左移动一列,但只能在同一行内移动。例如,我有以下数组:Python numpy沿单轴滚动,python,arrays,numpy,Python,Arrays,Numpy,我有一个带有二进制值的numpy数组,我需要按以下方式更改:每个元素的值必须向左移动一列,但只能在同一行内移动。例如,我有以下数组: >>> arr = np.array([[0,0,1,0],[1,0,0,0],[0,0,1,1]]) >>> arr array([[0, 0, 1, 0], [1, 0, 0, 0], [0, 0, 1, 1]]) 它需要转变为: >>> arr array([[0, 1, 0
>>> arr = np.array([[0,0,1,0],[1,0,0,0],[0,0,1,1]])
>>> arr
array([[0, 0, 1, 0],
[1, 0, 0, 0],
[0, 0, 1, 1]])
它需要转变为:
>>> arr
array([[0, 1, 0, 0],
[0, 0, 0, 1],
[0, 1, 1, 0]])
我知道np.rollarr,-1会将值向左滚动一个单元格,但它似乎无法将它们滚动到它们所属的行中,即单元格[1,0]上的元素转到[0,3],而不是所需的[1,3]。有没有办法做到这一点
提前感谢。roll接受轴参数:
np.roll(arr,-1, axis=1)
array([[0, 1, 0, 0],
[0, 0, 0, 1],
[0, 1, 1, 0]])
roll接受轴参数:
np.roll(arr,-1, axis=1)
array([[0, 1, 0, 0],
[0, 0, 0, 1],
[0, 1, 1, 0]])