python - 如何在 numpy 数组上使用 argmax
问题描述
我在 Python 中使用 Keras 深度学习。我有一个具有这种形状的 numpy 数组: [5, 30, 30, 30, 65] 我想沿第 5 维(65)执行 argmax,将每个第 5 个数组中最大值的索引设置为 1 和所有其他为0。对于上下文,该数组由生成器模型输出,并且我使用长度为65的最后一个维度作为单热编码。我该怎么做呢?
解决方案
要argmax
在第 5 维上执行操作,您可以axis
使用从 0 开始的计数指定参数。
因此,要获得argmax
第 5 维,您将使用:
idx = np.argmax(arr, axis=4)[0, 0, 0, 0]
然后,要将第 5 维数组转换为 one-hot 编码,您可以将该数组设置为一个np.zeros
数组,然后将idx
(从上面)的值更新为 1,如下所示:
arr[a, b, c, d] = np.zeros((65,))
arr[a, b, c, d, idx] = 1
其中a
, b
, c
, 和d
是第 1 到第 4 维的索引。
推荐阅读
- amazon-web-services - 如何使用通过 amazon kendra 中的 saml2aws 登录生成的凭据?
- reactjs - onclick运行功能反应不起作用reactjs
- python - 按分箱列分组,无法正常工作
- flutter - 如何在 moor 聚合高级查询中返回多个列
- java - 如何在 ArrayList 中搜索对象?
- javascript - 在尝试用 Javascript 实现数独求解器时,我的逻辑哪里出了问题?
- python - 使用 JamesSteinEncoder 时出现“is_categorical 已弃用”错误
- java - 如何访问嵌套的 hashmap java
- ssh - Google Cloud Source Repositories:权限被拒绝(公钥)
- ubuntu - openBinaryFile:使用 shellcheck 时不存在(没有这样的文件或目录)