我试图找到没有-inf值的数组的最小值。我能找到的是numpy函数来过滤NaNs而不是-inf:
import numpy as np
np.nanmin([1, 2, np.nan, np.NINF])
所需的输出是:
1
答案 0 :(得分:7)
使用np.isfinite
仅获取实际值:
import numpy as np
a = np.array([1, 2, np.nan, np.NINF])
min_value = a[np.isfinite(a)].min()
# >>> 1.0
答案 1 :(得分:5)
选择非-Infs并min
忽略NaNs
np.nanmin
-
np.nanmin(a[a != -np.inf])
示例运行 -
In [209]: a
Out[209]: array([ 1., 2., nan, -inf])
In [210]: np.nanmin(a[a != -np.inf])
Out[210]: 1.0
答案 2 :(得分:3)
使用蒙面数组的另一种方法:
>>> import numpy as np
>>> np.ma.masked_invalid([1, 2, np.nan, np.NINF]).min()
1.0
masked_invalid会忽略Inf和NaN值。