Python 数组排序、切片和反转返回空
我有一个按最后一列排序的数组,我想在其中使用/显示前3个排序行 切片和反转第二维度(第二个示例)也起作用。 但是,当我想要反转第一个维度(第三个示例)时,我得到一个空打印输出 我复制了一些示例,但当我输入一个slice和一个-1作为reverse时,我也得到了一个空输出 很明显我错过了什么Python 数组排序、切片和反转返回空,python,numpy,Python,Numpy,我有一个按最后一列排序的数组,我想在其中使用/显示前3个排序行 切片和反转第二维度(第二个示例)也起作用。 但是,当我想要反转第一个维度(第三个示例)时,我得到一个空打印输出 我复制了一些示例,但当我输入一个slice和一个-1作为reverse时,我也得到了一个空输出 很明显我错过了什么 arr = np.array ([[8, 2, 4, 6], [8, 3, 1, 8], [3, 7, 6, 1],
arr = np.array ([[8, 2, 4, 6],
[8, 3, 1, 8],
[3, 7, 6, 1],
[9, 4, 2, 4],
[4, 7, 5, 8],
[1, 9, 3, 5],
[1, 3, 9, 111],
[3, 6, 7, 111],
[2, 8, 2, 111],
[4, 5, 9, 3]])
print(arr[0:10,:])
print("###")
# Sort by column 4, then by column 3
lexsorted_index = np.lexsort((arr[:, 2], arr[:, 3]))
a = arr[lexsorted_index]
print(a[0:10:1,::]) #0-10th row each step, all columns
print("###")
print(a[0:10:1,::-1]) #0-10th row each step, all columns reversed
print("###")
print(a[0:3:-1,::]) #0-3rd row reversed, all columns
Python切片语法是
start:stop:step
,而不是low:high:step
。如果您的步骤是倒计时,则起点是高点,而不是低点
另外,切片是开始独占和停止独占,而不是低独占和高独占,因此,如果您想要前3行,则开始值应该是2而不是3,并且停止值应该被忽略,以便尽可能地进行切片(因为-1并不表示您想要的值)
Python切片语法是
start:stop:step
,而不是low:high:step
。如果您的步骤是倒计时,则起点是高点,而不是低点
另外,切片是开始独占和停止独占,而不是低独占和高独占,因此,如果您想要前3行,则开始值应该是2而不是3,并且停止值应该被忽略,以便尽可能地进行切片(因为-1并不表示您想要的值)
print(a[2::-1])