带冒号符号的Python numpy数组负开始索引

带冒号符号的Python numpy数组负开始索引,python,numpy,Python,Numpy,假设我有一个数组,如: a = np.arange(0,10) 为什么a[-1:9]给出的结果是空的?我希望它给出一个包含[-1]、a[0]、a[1]、。。。a[8]。切片被解释为从a[-1]开始,这与a[len(a)-1]相同,因此a[-1:9]相当于a[9:9],这是一个空列表。您期望的结果不是一个连续的范围,这是切片必须产生的。我明白了。在我看来,它应该首先扩展范围,因此[-1,0,1,…,8],然后将-1别名为9,从而得到[9,0,1,2,…,8]。我所要做的就是使用索引重新创建np.

假设我有一个数组,如:

a = np.arange(0,10)

为什么
a[-1:9]
给出的结果是空的?我希望它给出一个包含[-1]、a[0]、a[1]、。。。a[8]。

切片被解释为从
a[-1]
开始,这与
a[len(a)-1]
相同,因此
a[-1:9]
相当于
a[9:9]
,这是一个空列表。您期望的结果不是一个连续的范围,这是切片必须产生的。

我明白了。在我看来,它应该首先扩展范围,因此[-1,0,1,…,8],然后将-1别名为9,从而得到[9,0,1,2,…,8]。我所要做的就是使用索引重新创建np.roll()函数。
np.roll
代码很复杂,因为它可以在任何轴上工作。但基本上,对于你的轮班来说,它确实是
res[0]=a[-1]
res[1:]=a[:-1]
。不能使用一个切片表达式进行滚动<代码>切片生成一个
视图
滚动
不能是
视图