我有两个索引数组,我想手动返回中间的所有索引,就像一个切片函数,它看起来像这样:
ind1 = np.array([2,6])
ind2 = np.array([2,3])
final = np.array([[2,2,2], [4,5,6]])
由于切片的轴不固定,我想出了这个:
def index_slice(ind1,ind2):
return np.indices( 1 + ind1 - ind2 ) + ind2[:,np.newaxis,np.newaxis]
final = index_slice(ind1,ind2)
但是,这依赖于1 + ind1 > ind2
并且它也包括最后一个索引(不是pythonic)。有人会知道执行此操作的功能或更清洁的实现吗?
先感谢您。迭戈
PS 给出这个想法从何而来的一些背景。我正在考虑矩阵的子矩阵,我想从两个角落的索引中访问它们。由于问题的性质,给定的角并不总是与您在@pelson 的答案中看到的方向相同。