python - 我如何获取包含一个的 numpy 数组的索引
问题描述
如何以优雅的方式获取 numpy 数组中包含 1 的元素的索引?
我试图做一个循环:
indexes = []
for i in range(len(array)):
if array[i] == 1:
indexes += [i]
解决方案
使用np.where
:
a = np.array([0, 0, 1, 1, 0, 1, 1, 1, 0])
np.where(a)
输出:
(array([2, 3, 5, 6, 7], dtype=int64),)
或者np.nonzero
:
a.nonzero()
输出:
(array([2, 3, 5, 6, 7], dtype=int64),)
您还可以索引到np.arange
:
np.arange(len(a))[a.astype(bool)]
输出:
array([2, 3, 5, 6, 7])
推荐阅读
- google-sheets - 如何计算具有范围的 2 列
- angular - 使用 Ionic 从 firebase 获取对象数据
- javascript - 要求输入,然后在新窗口中打开
- scala - 为什么使用模式查询时所有字段都为空?
- swift - 从委托类调用视图控制器函数
- javascript - 如何在颤动中将一个图标更改为两个不同的图标?
- python - 如何在不使用 pywin 包或 excel 模板的情况下在 python 中创建类似 excel 的表?
- algorithm - 二维字母数组中的最长路径
- regex - 使用正则表达式删除匹配的字符串
- python - 如何在 Pytorch 中实现 dropout,以及在哪里应用它