我正在尝试使用numpy的argmax函数接受两个参数。 这是代码:
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))
如果我将lambda与argmax
函数的第二个参数一起使用,则会出现错误:
TypeError: 'function' object cannot be interpreted as an integer
如果我不将lambda与argmax
函数的第二个参数一起使用,则会收到错误消息:
UnboundLocalError: local variable 'a' referenced before assignment
我正在使用Python 3.6.5
现在,我什至对argmax
函数的工作方式感到困惑。 lambda在这里的作用是什么。