【问题标题】:Remove NoneType from two lists从两个列表中删除 NoneType
【发布时间】:2016-06-23 18:23:43
【问题描述】:

我正在使用两个长度相等的np.arrays。其中之一包含None 元素。我想从该数组以及另一个数组中的相应元素中删除这些。

我天真地以为这样就可以了:

ToFRemove = (None == ListA)  # Find None type                          

ListA = ListA[not ToFRemove]
ListB = ListB[not ToFRemove]

这适用于查找其他常规元素。但是,我得到False 作为ToFRemove 的值,所以这不起作用。

我假设我应该编写一些迭代器来查找 None 中的元素,就像在 this answer 中一样,但我不知道如何。

【问题讨论】:

    标签: python list numpy nonetype


    【解决方案1】:

    我会这样做

    np_array[np_array != np.array(None)]

    语句 np_array != np.array(None) 输出一个布尔数组。该布尔数组将具有“False”,其中元素为“None”类型,而其他元素为 True。与 'True' 对应的索引保留在结果数组中,而与 'False' 对应的索引将被删除。

    将此应用于您的问题

    ToKeep = (ListA != np.array(None))
    ListA = ListA[ToKeep]
    ListB = ListA[ToKeep]
    

    【讨论】:

      【解决方案2】:
      ToFRemove = np.array([x is None for x in ListA])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-11-27
        • 1970-01-01
        • 2022-10-01
        • 2018-05-16
        相关资源
        最近更新 更多