Numpy argmax函数错误

时间:2018-08-10 09:47:41

标签: python python-3.x numpy argmax

我正在尝试使用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在这里的作用是什么。

0 个答案:

没有答案