Python numpy:按相反顺序引用元素
我对如何以相反的顺序引用numpy数组的元素有点困惑:例如:Python numpy:按相反顺序引用元素,python,numpy,Python,Numpy,我对如何以相反的顺序引用numpy数组的元素有点困惑:例如: arr = np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20]]) print(arr[1:3,:]) #gives me [[ 6 7 8 9 10] [11 12 13 14 15]] 然而 print(arr[3:1,:] #gives me [] 我是否可以从元素3开始,向后打印到元素1? 因此,预期产出是 [[11 12 13
arr = np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20]])
print(arr[1:3,:]) #gives me
[[ 6 7 8 9 10]
[11 12 13 14 15]]
然而
print(arr[3:1,:] #gives me
[]
我是否可以从元素3开始,向后打印到元素1?
因此,预期产出是
[[11 12 13 14 15]
[ 6 7 8 9 10]]
谢谢 你可以从另一个角度来切割,从一端到另一端。但是请注意,在python中进行切片时,必须指定
aList[start:stop:step]
,stop
。因此[1:3]
将从第一个返回到3d
元素(3d
不包括在内)
因此,要颠倒顺序,您必须按照@danielmesejo的建议执行
arr[2:0:-1]
,因为如果执行arr[3:0:-1]
,在这种情况下,将包含3
元素,并且您将得到索引超出范围的错误。请注意,您还必须在中指定-1
的步骤以颠倒顺序。直接表示您正在向后索引的另一种可能性是使用
arr[-2:,:]
array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]])
此外,您还可以编写显式cast-to-list,因为这是您的问题中给出的,如下所示
(arr[-2:,:]).tolist()
[[11, 12, 13, 14, 15], [16, 17, 18, 19, 20]]
预期的输出是什么?您可以这样做:arr[2:0:-1]
列表和numpy数组可以向后切片。列表中的切片格式为[开始:停止:步骤]。如果我想退后一步,我的步骤是-1。谢谢Daniel Mesejo和Bailly Kocin…这非常有效!