numpy.isfinite¶
-
numpy.
isfinite
(x[, out]) = <ufunc 'isfinite'>¶ 测试元素的有限性(不是无穷大或不是数字)。
结果作为布尔数组返回。
参数: x:array_like
输入值。
out:ndarray,可选
数组,其中放置输出。它的类型被保留,并且它必须是保持输出的正确形状。请参见
doc.ufuncs
。返回: y:ndarray,bool
对于标量输入,结果是一个新的布尔值,如果输入是有限的,值为True;否则值为False(输入为正无穷大,负无穷大或不为数字)。
对于数组输入,结果是一个与输入具有相同维度的布尔数组,如果输入的相应元素是有限的,则值为True;否则值为False(元素为正无穷大,负无穷大或非数字)。
笔记
不是数字,正无穷和负无穷大被认为是非有限的。
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])