向后切片
Backwards Slicing
我有一个从 0 到 999 的 numpy 数组,我想制作一个从列表中的最后一个元素 (999) 到中间的元素 (500) 的切片。
test[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()
>>> 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])
我有一个从 0 到 999 的 numpy 数组,我想制作一个从列表中的最后一个元素 (999) 到中间的元素 (500) 的切片。
test[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()
>>> 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])