上一主题

numpy.any

下一主题

numpy.isinf

numpy.isfinite

numpy.isfinite(x[, out]) = <ufunc 'isfinite'>

测试元素的有限性(不是无穷大或不是数字)。

结果作为布尔数组返回。

参数:

x:array_like

输入值。

out:ndarray,可选

数组,其中放置输出。它的类型被保留,并且它必须是保持输出的正确形状。请参见doc.ufuncs

返回:

y:ndarray,bool

对于标量输入,结果是一个新的布尔值,如果输入是有限的,值为True;否则值为False(输入为正无穷大,负无穷大或不为数字)。

对于数组输入,结果是一个与输入具有相同维度的布尔数组,如果输入的相应元素是有限的,则值为True;否则值为False(元素为正无穷大,负无穷大或非数字)。

也可以看看

isinfisneginfisposinfisnan

笔记

不是数字,正无穷和负无穷大被认为是非有限的。

Numpy使用IEEE标准二进制浮点运算(IEEE 754)。这意味着不是数字不等于无穷大。正无穷大也不等于负无穷大。但是无穷大等于正无穷。如果在x是标量输入时,或者如果第一个和第二个参数具有不同的形状时,如果还提供第二个参数,则会产生错误。

例子

>>> np.isfinite(1)
True
>>> np.isfinite(0)
True
>>> np.isfinite(np.nan)
False
>>> np.isfinite(np.inf)
False
>>> np.isfinite(np.NINF)
False
>>> np.isfinite([np.log(-1.),1.,np.log(0)])
array([False,  True, False], dtype=bool)
>>> x = np.array([-np.inf, 0., np.inf])
>>> y = np.array([2, 2, 2])
>>> np.isfinite(x, y)
array([0, 1, 0])
>>> y
array([0, 1, 0])