python - 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在这里的作用是什么。
解决方案
推荐阅读
- java - 有没有办法在 Kotlin 的构造函数中声明 T ?
- c++ - xcodebuild 如何将 WARNING_CFLAGS 传递给 buildsettings
- git - Git - 检查是否在 git merge 中手动取消了某些文件
- javascript - 单击输入类型文本后如何修改下拉列表的缓存值
- javascript - VUE JS 防止路由器链接的事件传播
- java - 使用 sessionFactory 通过 HibernateOGM 连接到 MongoDB 失败
- python - 如何打印值而不是张量?
- r - 如何更改“shinymanager”R 包的“注销”和菜单的位置?
- python - 使用 Python 的索引匹配/MaxIF 函数
- amazon-web-services - 无服务器 AWS API 冲突路由