Python 按行移动numpy数组

Python 按行移动numpy数组,python,numpy,shift,Python,Numpy,Shift,数组: 我使用shiftfromscipy.ndimage.interpolation如下所示: arr = np.ones([4,4]) array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]) array([[ nan, nan, nan, nan], [ 1., 1., 1., 1

数组:

我使用
shift
from
scipy.ndimage.interpolation
如下所示:

arr = np.ones([4,4])

array([[ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.]])
array([[ nan,  nan,  nan,  nan],
       [ 1.,   1.,   1.,   1.],
       [ 1.,   1.,   1.,   1.],
       [ 1.,   1.,   1.,   1.]])
不过,我想:

shift(arr,1, cval=np.nan)

array([[ nan,  nan,  nan,  nan],
       [ nan,   1.,   1.,   1.],
       [ nan,   1.,   1.,   1.],
       [ nan,   1.,   1.,   1.]])

基本上,我希望将所有列数据向下移动,并从数据集中引导最后一行
Pandas
具有可以执行此操作的shift函数,但我不确定如何在
Numpy
中执行此操作您可以将
shift
函数的
shift
参数(第二个参数)从
scipy.ndimage.interpolation更改如下:

arr = np.ones([4,4])

array([[ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.]])
array([[ nan,  nan,  nan,  nan],
       [ 1.,   1.,   1.,   1.],
       [ 1.,   1.,   1.,   1.],
       [ 1.,   1.,   1.,   1.]])

这里,
(1,0)
表示第一维中的
1
,第二维中的
0

您可以从
scipy.ndimage.interpolation
更改
shift
函数的
shift
参数(第二个参数),如下所示:

arr = np.ones([4,4])

array([[ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.]])
array([[ nan,  nan,  nan,  nan],
       [ 1.,   1.,   1.,   1.],
       [ 1.,   1.,   1.,   1.],
       [ 1.,   1.,   1.,   1.]])

这里,
(1,0)
表示第一维中的
1
,第二维中的
0

可能还需要显式设置
mode='constant'
也可能需要显式设置
mode='constant'