Найти - Пользователи
Полная версия: numpy вместо цикла
Начало » Python для экспертов » numpy вместо цикла
1
Emorh
Здравствуйте! Имеется следующий участок кода в программе

    predictions = np.array([[1, 1, 1, 1], [1, 2, -1, -1]])
    target_index = np.array([[2], [1]])
    
    predictions[0][target_index[0]] -= 1
    predictions[1][target_index[1]] -= 1



predictions и target_index поступают извне, но это всегда двумерные массивы с одинаковым числом строк.
Можно ли записать такой код без использования циклов? Я пробовал сделать так:
    predictions = np.array([[1, 1, 1, 1], [1, 2, -1, -1]])
    target_index = np.array([[2], [1]])
    
    predictions[:][target_index[:]] -= 1

Но получаю ошибку - выход за пределы массива
doza_and
Emorh
Можно ли записать такой код без использования циклов?
Очевидно можно! У вас нет в коде циклов.
Если запишете с циклами получите туже ошибку. Не надо использовать индексы выходящие за пределы массива.

p.s.
И повторять послания не нужно, все их и так видят. Я думаю не отвечают поскольку вопрос сформулирован некорректно. А причина ошибки очевидна из сообщения интерпретатора и тут просто нечего добавить.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB