Ошибка функции numpy argmax

Я пытаюсь использовать функцию argmax numpy для получения двух аргументов. Вот код:

UP = 1 
DOWN = 2 
LEFT = 3 
RIGHT = 4 
actlist = [UP, DOWN, LEFT, RIGHT]

a = numpy.argmax(actlist, lambda a: expected_utility(a,i,j,U))

Проблема в том, что одним из аргументов является возвращаемое значение функции. Возвращает целое число.
Функция expected_utility(a,i,j,U) похоже:

def expected_utility(a,i,j,U):
    return sum(p*U[i][j] for (k,l,p) in T(i,j,a))

Если я использую лямбду со вторым параметром argmax функция, я получаю ошибку:

TypeError: 'function' object cannot be interpreted as an integer

Если я не использую лямбду со вторым параметром argmax функция, я получаю ошибку:

UnboundLocalError: local variable 'a' referenced before assignment

Я использую Python 3.6.5

Теперь я даже запутался с тем, как argmax функция даже работает. Какова роль лямбды здесь.

0 ответов

Другие вопросы по тегам