使用 np.where 或类似方法从列表中保存元素的最简单方法是什么?
一个简短的例子:
l1 = [-144.92170726320364, 697.7739312692029, -2.0, -2.0]
我想保留与-2.0 不同的元素。我试过:
l2 = [l1[index] for index in len(l1) if l1[index] != -2.0]
还有:
l3 = np.where(l1 != -2.0)
在第一种情况下,我收到了错误。在第二种情况下,我获得了 (array([0]),)。
感谢您的帮助。
请您参考如下方法:
如果您将 list 更改为 numpy.array
>>> import numpy as np
>>> l1 = np.array([-144.92170726320364, 697.7739312692029, -2.0, -2.0])
你可以对标量进行比较
>>> l1 != -2.0
array([ True, True, False, False], dtype=bool)
然后使用该表达式索引到您的原始数组
>>> l1[l1 != -2.0]
array([-144.92170726, 697.77393127])
