Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python numpy:按相反顺序引用元素_Python_Numpy - Fatal编程技术网

Python 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

我对如何以相反的顺序引用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 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…这非常有效!