Dra*_*ric 16 python arrays numpy nan
我想得到包含NaN的numpy数组的最小值的索引,我希望它们被忽略
>>> a = array([ nan, 2.5, 3., nan, 4., 5.])
>>> a
array([ NaN, 2.5, 3. , NaN, 4. , 5. ])
Run Code Online (Sandbox Code Playgroud)
如果我运行argmin,它将返回第一个NaN的索引
>>> a.argmin()
0
Run Code Online (Sandbox Code Playgroud)
我用Infs代替NaNs然后运行argmin
>>> a[isnan(a)] = Inf
>>> a
array([ Inf, 2.5, 3. , Inf, 4. , 5. ])
>>> a.argmin()
1
Run Code Online (Sandbox Code Playgroud)
我的困境如下:我宁愿不将NaNs改为Infs然后在我完成argmin后再回来(因为NaNs后来在代码中有意义).有一个更好的方法吗?
还有应该的结果是什么,如果所有的原始值的问题,一个为NaN?在我的实现中,答案是0
unu*_*tbu 32
当然!用途nanargmin
:
import numpy as np
a = np.array([ np.nan, 2.5, 3., np.nan, 4., 5.])
print(np.nanargmin(a))
# 1
Run Code Online (Sandbox Code Playgroud)
还有nansum
,nanmax
,nanargmax
,和nanmin
,
在scipy.stats
,有nanmean
和nanmedian
.
归档时间: |
|
查看次数: |
6441 次 |
最近记录: |