所以我想知道是否有一些切片可以让我做一个数组的循环排列。基本上我想知道的是否有整数i,j,k
这样:
> x = np.arange(10)
> print x[i:j:k]
[9,0,1,2,3,4,5,6,7,8]
和
> x = np.arange(10)
> print x[i:j:k]
[1,2,3,4,5,6,7,8,9,0]
我认为自然语法是:
import numpy as np
x = np.arange(10)
print x[-1:0]
但是返回一个空数组(它有点意义......)。还尝试了其他切片组合,没有任何效果。我可以用其他方式做到这一点,但这会很简洁......:P
感谢。
答案 0 :(得分:3)
您可以使用numpy.roll()
或一些步幅,但除此之外我很确定答案是否定的,没有3个整数切片可以返回您想要的内容。
答案 1 :(得分:2)
我认为这是不可能的,因为要做你要求的,numpy需要制作数组的副本并且切片创建视图而不是副本。正如本杰明已经提到的,请查看numpy.roll
。