Python中是否存在一种格式,我可以表示可以传递给另一个数组的索引的任意范围?

现在我正在使用具有开始和结束索引的元组:

ind_range = (34,98) 

但是我想要的是:

ind_range = (34:98)

因此我可以将其直接传递给数组:

array[ind_range]

编辑:

回答的原始问题:使用range()

最终,我想做的是用索引范围列表索引另一个数组。

ind_ranges=[range(5,9),range(13,19)]
array[ind_ranges]
output: [[values from range1],[values from range2]]

执行此操作时出现错误:

  

IndexError:用作索引的数组必须为整数(或布尔值)   输入

最终编辑:

正确答案:将slice对象与列表理解结合使用。

jamney 回答:Python中是否存在一种格式,我可以表示可以传递给另一个数组的索引的任意范围?

您可以只使用slice对象。

s = slice(34,98)

现在您可以使用

array[s]

如果要使用多个片段,请使用列表理解:

slices= [slice(34,98),slice(34,98)]
values = [array[s] for s in slices]
,

实际上只是npm start

因为大家都很挣扎,所以这里有一个逐步的教程:

array[range(34,98)]

import numpy as np arr = np.array([1,2,3,4,5,6,7,8]) print(arr[range(2,4)])

,

这对我有用-Nicolas的解决方案在python 3中为我返回TypeError: list indices must be integers or slices,not range

>>> arr = [i for i in range(15)]
>>> start,end = 8,12
>>> arr[start:end]
[8,9,10,11]
本文链接:https://www.f2er.com/3137077.html

大家都在问