Нужна помощь в понимании этого синтаксиса списка Python - PullRequest
0 голосов
/ 22 апреля 2020

Мне трудно понять, что означает этот синтаксис в Python:

out = out[lengths - 1, range(len(lengths))]

Почему в списке есть диапазон? Как это работает? Для контекста я тренирую модель машинного обучения в PyTorch. длина представляет собой список длин ввода.

1 Ответ

3 голосов
/ 22 апреля 2020

Я предполагаю, 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])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...