You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用np.argwhere处理数组切片时,如何获取原数组中的元素索引?

实现方法

直接通过布尔掩码筛选原索引列表即可,步骤如下:

  1. 先生成子集元素满足条件的布尔数组
  2. 用这个布尔数组过滤原索引数组i,再调整成和np.argwhere一致的二维格式

完整代码示例:

import numpy as np

A = np.array([1,2,3,4,5,6,7,8,9])
i = [0, 3, 6, 7, 8]

# 生成子集的条件掩码
mask = A[i] < 8
# 筛选原索引并调整形状
result = np.array(i)[mask].reshape(-1, 1)

print(result)

运行后输出:

array([[0],
       [3],
       [6]])

简单解释:

  • A[i] < 8会得到布尔数组[True, True, True, False, False],标记子集里哪些元素符合条件
  • 将原索引列表i转为numpy数组后,用这个掩码直接提取对应位置的原索引
  • reshape(-1, 1)是为了让输出格式和np.argwhere返回的二维列数组完全匹配

内容的提问来源于stack exchange,提问作者Ronin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:57:35