Python在没有-inf

时间:2016-12-11 17:18:00

标签: python python-2.7 numpy

我试图找到没有-inf值的数组的最小值。我能找到的是numpy函数来过滤NaNs而不是-inf:

import numpy as np
np.nanmin([1, 2, np.nan, np.NINF])

所需的输出是:

1

3 个答案:

答案 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值。