Я предполагаю, lengths
это массив целых чисел. (вероятно, массив Numpy)
Первый индекс lengths - 1
даст список индексов, который будет вычтен из -1
. Второй индекс range(len(lengths))
выдаст список чисел от 0 до размера lengths
.
Я не знаю, что указано в вашем коде c logi c, но в В общем, вы можете дать список индексов для выбора данных в указанных c местоположениях.
out = np.array([[1,2,3],[4,5,6],[7,8,9]])
-> array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
first_idx = [0, 1, 2]
second_idx = [2, 1, 0]
# (0,2), (1,1), (2,0)
out[first_idx, second_idx]
-> array([3, 5, 7])