Numpy:相当于numpy.roll,但仅用于数据可视化

mac*_*mac 7 python numpy python-2.7

有没有办法在数组上执行滚动,而不是只拥有一个只有不同可视化数据的数据副本?

一个例子可能会澄清:给出ba... 的滚动版本

>>> a = np.random.randint(0, 10, (3, 3))
>>> a
array([[6, 7, 4],
       [5, 4, 8],
       [1, 3, 4]])
>>> b = np.roll(a, 1, axis=0)
>>> b
array([[1, 3, 4],
       [6, 7, 4],
       [5, 4, 8]])
Run Code Online (Sandbox Code Playgroud)

...如果我在阵列上执行任务b......

>>> b[2,2] = 99
>>> b
array([[ 1,  3,  4],
       [ 6,  7,  4],
       [ 5,  4, 99]])
Run Code Online (Sandbox Code Playgroud)

......内容a不会改变......

>>> a
array([[6, 7, 4],
       [5, 4, 8],
       [1, 3, 4]])
Run Code Online (Sandbox Code Playgroud)

...相反,我希望:

>>> a
array([[6, 7, 4],
       [5, 4, 99],    # observe as `8` has been changed here too!
       [1, 3, 4]])
Run Code Online (Sandbox Code Playgroud)

提前感谢您的时间和专业知识!

Sve*_*ach 9

对不起,这是不可能的.滚动数组不能用不同的步幅来描述,这对于NumPy视图来说是必要的.