用字典切片 NumPy 数组

Slicing NumPy array with dictionary

是否有一个简单的选项可以使用预定义的索引字典对 NumPy 数组进行切片?

例如:

>> a = array([3, 9, 1, 5, 5])

和(虚构的)词典:

>> index_dict = {'all_except_first': (1:None), 'all_except_last': (None:-1)}

然后:

>> a[index_dict['all_except_first']]
>> array([9, 1, 5, 5])
>> a[index_dict['all_except_first']]
>> array([3, 9, 1, 5])

使用名称而不是数字进行切片。

创建 slices:

>>> index_dict = {'all_except_first': slice(1, None), 'all_except_last': slice(None, -1)}
>>>
>>> a[index_dict['all_except_first']]
array([9, 1, 5, 5])
>>> a[index_dict['all_except_last']]
array([3, 9, 1, 5])