2017-09-27 150 views
1

使用np.where或類似的方法從列表中保存元素最簡單的方法是什麼?列表中的Numpy mask

簡單例子:

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]),)

感謝您的幫助。

回答

1

普通的Python陣列

l2 = [i for i in l1 if i!=-2.0] 

numpy的陣列

l1 = np.array(l1) 
l2 = l1[l1 != -2.0] 
3

如果您改變listnumpy.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]) 
2

試試這個:

[l for l in l1 if l != -2.0]