Ошибка функции 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
функция даже работает. Какова роль лямбды здесь.