краткая стенография для получения зубчатого среза

У меня есть операция, которую я обычно делаю, которую я называю «зубчатым срезом», потому что я не знаю настоящего имени для нее. Это лучше всего объяснить на примере:

a = np.random.randn(50, 10)
entries_of_interest = np.random.randint(10, size = 50)  # Vector of 50 indices between 0 and 9
# Now I want the values contained in each row of a at the corresponding index in "entries of interest"
jagged_slice_of_a = a[np.arange(a.shape[0]), entries_of_interest]
# jagged_slice_of_a is now a vector with 50 elements.  Good.

Единственная проблема в том, что это немного громоздкоa[np.arange(a.shape[0]), entries_of_interest] индексирование (кажется глупым создавать «np.arange (a.shape [0])» только ради этого). Я хотел бы что-то вроде: оператор для этого, но: делает что-то еще Есть ли более краткий способ сделать эту операцию?

Лучший ответ:

Нет, нет лучшего способа с родным NumPy. Вы можете создать вспомогательную функцию для этого, если хотите.

Ответы на вопрос(3)

Ваш ответ на вопрос