如何获取numpy完整年份数组中有效年份对应的索引(无需循环/检索)
实现方案
直接使用numpy原生向量化方法即可,无需任何循环或自定义检索函数:
import numpy as np valid_year = np.array([1999, 2005, 2007, 2010]) full_year = np.array([1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010]) # 生成匹配布尔掩码 match_mask = np.isin(full_year, valid_year) # 提取匹配位置的索引 res_index = np.flatnonzero(match_mask)
输出res_index结果为array([ 0, 6, 8, 11]),和预期完全一致。
方法说明
np.isin(待检查数组, 参考数组):返回与待检查数组形状相同的布尔数组,对应位置为True代表该位置元素存在于参考数组中np.flatnonzero(布尔数组):返回数组中所有值为非零(即True)的位置索引,适配一维数组场景直接得到目标结果
内容的提问来源于stack exchange,提问作者DiaryWolf
相关产品推荐
相关产品推荐

