首页 > 解决方案 > 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在这里的作用是什么。

标签: pythonpython-3.xnumpyargmax

解决方案


推荐阅读