代码之家  ›  专栏  ›  技术社区  ›  Denver Dang

删除条目后获取原始列表的索引

  •  0
  • Denver Dang  · 技术社区  · 8 年前

    假设我有一个清单:

    original_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    

    然后我有另一个列表,其中的索引必须从 original_list :

    remove_list = [0, 4, 6]
    

    然后使用Numpy删除这些索引:

    final_list = np.delete(original_list, remove_list, axis = 0]
    

    很好,假设我现在希望找到 final_list 具有 np.amax(final_list) . 现在有什么方法可以计算出这个值在 原始清单 ?

    2 回复  |  直到 8 年前
        1
  •  2
  •   sacuL    8 年前

    选项1: np.where :

    >>> np.where(original_list == np.amax(final_list))
    (array([8]),)
    

    选择2: .index()

    >>> original_list.index(np.amax(final_list))
    8
    

    注意:如果有多个匹配索引,此方法将只返回第一个/最小索引。如果需要所有索引,请使用 np.其中 如上所述

        2
  •  0
  •   Sacry    8 年前

    这是另一种方法,

    mask = np.zeros(original_list.shape, dtype=np.bool)
    mask[remove_list] = True
    
    np.ma.MaskedArray(original_list, mask=mask).argmax()