2013-03-26 104 views
0

我想用參考信號在np.all()的幫助下比較信號。該參考文獻可以包含np.nan。在這個NaN位置,信號是否滿足比較條件並不重要。以下是一個示例代碼。但是這個代碼不起作用。 我可以比較for -loop中的每個元素,但有沒有一種明智的方法可以做這種比較?用NaN評估

import numpy as np 

reference = np.array([np.nan, 1]) 
signal = np.array([2, 2]) 

print np.all(reference < signal) 

回答

2

用適當的切片限制與non-nan值的比較。您也可以使用np.finite代替~np.isnan

import numpy as np 

reference = np.array([np.nan, 1]) 
signal = np.array([2, 2]) 
idx = ~np.isnan(reference) 

print np.all(reference[idx] < signal[idx]) 
+0

謝謝,效果很好。但是你的代碼有一個小錯誤。請將'idx =〜np.isnan(signal)'改爲'idx =〜np.isnan(reference)'。 – wewa 2013-03-26 13:32:04

+0

哦,對不起,我想我沒有仔細閱讀你的文章。不過,我很高興它有幫助! – 2013-03-26 13:38:17