Допустим, у меня есть матрица:
>> a = np.arange(25).reshape(5, 5)`
>> a
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]
и два вектора индексов, которые определяют диапазон матричных элементов, которые я хочу извлечь:
>> indices1 = np.array([0, 1, 1, 0, 0])
>> indices2 = np.array([2, 3, 3, 2, 2])
Как видите, разница между каждым соответствующим индексом равна 2.
Я хотел бы сделать что-то вроде извлечения части матрицы:
>> submatrix = a[indices1:indices2, :]
так, чтобы результат был 2х5 матрицы:
>> submatrix
[[ 0 6 7 3 4],
[ 5 11 12 8 9]]
Насколько я знаю, numpy позволяет указывать индексы в качестве границ, но не позволяет предоставлять массивы, только целые числа, например. a[0:2]
.
Обратите внимание, что я хочу вычесть не подматрица:
Вам известен какой-то другой способ индексации матрицы-пустышки, чтобы можно было предоставлять массивы, определяющие промежутки? На данный момент мне удалось сделать это только с помощью циклов.