Python:遍历numpy数组时获取对应行号的可行方案有哪些?
获取numpy数组遍历行的行号(非enumerate类遍历重构方案)
方案一:外部计数器变量
这是最直接的实现方式,无需修改原遍历的核心结构,仅通过一个外部变量追踪行号:import numpy as np # 示例(n,m)形状数组 xrandom = np.random.rand(5, 3) row_idx = 0 for xreg in xrandom: print(xreg, row_idx) row_idx += 1优点:简单高效,无额外性能开销,适用于所有场景,不受数组行内容是否重复的影响。
方案二:numpy元素匹配定位(仅适用于行内容唯一的场景)
通过比对当前行与原数组的所有行,定位对应的行索引,注意该方法仅在数组每行内容唯一时有效,且大规模数据下效率偏低:import numpy as np xrandom = np.random.rand(5, 3) for xreg in xrandom: # 定位第一个匹配行的索引 idx = np.argwhere((xrandom == xreg).all(axis=1))[0][0] print(xreg, idx)缺点:每次循环需遍历整个数组做元素比对,性能损耗大;若存在重复行,会返回错误的索引值。
内容的提问来源于stack exchange,提问作者Antonio Frade Rubio
相关产品推荐
相关产品推荐

