array = numpy.array([1,2,3,4,5,6,7,8,9,10])
array[-1:3:1]
>> []
我希望这个数组索引返回如下内容:
[10,1,2,3]
答案 0 :(得分:4)
答案 1 :(得分:4)
np.roll允许你包装一个可能有用的数组
import numpy as np
a = np.array([1,2,3,4,5,6,7,8,9,10])
b = np.roll(a,1)[0:4]
结果
>>> b
array([10 1 2 3])
答案 2 :(得分:2)
作为上述答案之一,滚动数组会生成整个数组的副本,这可能是大型数组的内存消耗。因此,另一种不转换为列表的方法是:
np.concatenate([array[-1:],array[:3]])
答案 3 :(得分:2)
使用np.r_
:
import numpy as np
>>>
>>> arr = np.arange(1, 11)
>>> arr[np.r_[-1:3]]
array([10, 1, 2, 3])
答案 4 :(得分:-1)
最简单的解决方案是首先转换为列表,然后加入并返回数组。
因此:
>>> numpy.array(list(array[-1:]) + list(array[:3]))
array([10, 1, 2, 3])
通过这种方式,您可以选择要开始和结束的索引,而不会创建整个数组的副本