【发布时间】:2016-12-11 17:17:59
【问题描述】:
我试图找到没有 -inf 值的数组的最小值。我能找到的有 numpy 函数可以过滤掉 NaN 但不是 -inf:
import numpy as np
np.nanmin([1, 2, np.nan, np.NINF])
想要的输出是:
1
【问题讨论】:
标签: python python-2.7 numpy
我试图找到没有 -inf 值的数组的最小值。我能找到的有 numpy 函数可以过滤掉 NaN 但不是 -inf:
import numpy as np
np.nanmin([1, 2, np.nan, np.NINF])
想要的输出是:
1
【问题讨论】:
标签: python python-2.7 numpy
选择非-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
【讨论】:
使用np.isfinite 仅获取真实值:
import numpy as np
a = np.array([1, 2, np.nan, np.NINF])
min_value = a[np.isfinite(a)].min()
# >>> 1.0
【讨论】:
另一种使用掩码数组的方法:
>>> import numpy as np
>>> np.ma.masked_invalid([1, 2, np.nan, np.NINF]).min()
1.0
masked_invalid 将忽略 Inf 和 NaN 值。
【讨论】: