python - 返回数组中 1 的索引
问题描述
假设我们有一个像这样的 numpy 数组[[1,0,0],[0,1,0],[0,0,1]]
,我们想将该数组更改为第 i 个条目是原始数组的第 i 个子数组中 1 的索引的数组。在上述情况下,我们希望得到[0,1,2]
作为返回值。
numpy 中是否有库方法可以做到这一点?
解决方案
对于二进制(只有 1 和零)数组,您可以使用numpy.argmax:
import numpy as np
arr = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
print(arr.argmax(axis=1))
输出
[0 1 2]
如果还有其他值,并且您想找到 1,则可以使用:
arr = np.array([[1, 2, 3], [4, 1, 5], [6, 7, 1]])
print((arr == 1).argmax(axis=1))
输出
[0 1 2]
请注意,这也适用于二进制情况。
推荐阅读
- javascript - 如何用另一个(切换)禁用一个jQuery函数?
- shell - ansible - /bin/sh cd 路径没有这样的文件或目录
- python - python c api。使用 cpp(python c api) 调用具有多个输出的 python 函数
- java - JFugue 5 笔记问题
- ios - Swift - Parse Data Return in Email
- css - 如何为锚元素使用多个&符号?
- c# - 如何检查 NuGet 包中是否存在包/组件 Uri?
- python - 使用 Excel 将每小时计划拆分为几分钟
- visual-studio - Visual Studio 忽略 CMake 链接器标志以进行配置文件引导优化
- javascript - 在 documentFragment 上使用 document.elementFromPoint