2013-03-26 59 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