我想要得到包含的NaN一个numpy的阵列的分钟值的索引,我希望他们忽略

>>> a = array([ nan,   2.5,   3.,  nan,   4.,   5.])  
>>> a  
array([ NaN,  2.5,  3. ,  NaN,  4. ,  5. ])  

如果我运行argmin,它将返回第一NaN的

的索引
>>> a.argmin()  
0  

我替代品具有INFS NaN和然后运行argmin

>>> a[isnan(a)] = Inf  
>>> a  
array([ Inf,  2.5,  3. ,  Inf,  4. ,  5. ])  
>>> a.argmin()  
1  

我的困境是以下内容:我宁愿不改变的NaN到的INF,然后回到我与argmin完成后(因为NaN的有后来在代码的意思)。有一个更好的方法吗?

有也是应该的结果是什么,如果所有的原始值的 为NaN一个问题吗?我在执行答案是0

有帮助吗?

解决方案

当然!使用nanargmin

import numpy as np
a = np.array([ np.nan,   2.5,   3.,  np.nan,   4.,   5.])
print(np.nanargmin(a))
# 1

还有nansumnanmaxnanargmax,和nanmin

scipy.stats,有nanmeannanmedian

更多的方式来忽略nans,检查出掩蔽阵列

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top