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
fromscipy.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'