Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.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 反向切片_Python_Python 3.x_Numpy_Numpy Slicing - Fatal编程技术网

Python 反向切片

Python 反向切片,python,python-3.x,numpy,numpy-slicing,Python,Python 3.x,Numpy,Numpy Slicing,我有一个从0到999的数字数组,我想制作一个从列表中的最后一个元素(999)到中间的(500)的片段。p> 测试[500:][:::-1]可以工作,但是如果我有一个二维数组,并且我只想沿着第零轴执行,那么它就不工作了,因为它还反转了第二个轴 import numpy as np test = np.arange(1000) test[500:][::-1] 您可以使用步骤-1从-1到停止索引进行切片: > import numpy as np > n = np.arange(20

我有一个从0到999的数字数组,我想制作一个从列表中的最后一个元素(999)到中间的(500)的片段。p> 测试[500:][:::-1]可以工作,但是如果我有一个二维数组,并且我只想沿着第零轴执行,那么它就不工作了,因为它还反转了第二个轴

import numpy as np
test = np.arange(1000)
test[500:][::-1]

您可以使用步骤
-1
-1
到停止索引进行切片:

> import numpy as np

> n = np.arange(20)
> n[-1:10:-1]
array([19, 18, 17, 16, 15, 14, 13, 12, 11])

> # or (thanks iz_)
> n[:10:-1]
array([19, 18, 17, 16, 15, 14, 13, 12, 11])
您可以使用np.flip()


顺便说一句,
n[:10:-1]
也可以工作。开始
-1
是多余的。谢谢@iz。这是一个很好的提示;我不知道。出于某种原因,缺乏明确性困扰着我——但可能需要一些时间来适应。我想这是明确性和简洁性之间的权衡。就我个人而言,我更喜欢
n[:10:-1]
,因为我可以查看它并立即看到:
10
-10个元素,
-1
-相反。不管怎么说,这是基于观点的+1您的2D阵列看起来怎么样?如果它类似于np.arange(2000).重塑(21000),则可以对轴0执行
arr[0][:500:-1]
>>> x = np.arange(20)
>>> x
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19])
>>> np.flip(x) 
array([19, 18, 17, 16, 15, 14, 13, 12, 11, 10,  9,  8,  7,  6,  5,  4,  3,
        2,  1,  0])