maxframe.tensor.isfinite#

maxframe.tensor.isfinite(x, out=None, where=None, **kwargs)[源代码]#

逐元素测试有限性(非无穷大或非非数字)。

结果以布尔张量形式返回。

参数:
  • x (array_like) -- 输入值。

  • out (Tensor, None, or tuple of Tensor and None, optional) -- 用于存储结果的位置。如果提供,则其形状必须可广播至输入的形状。如果未提供或为 None,则返回一个新分配的张量。元组(仅可作为关键字参数)的长度必须等于输出的数量。

  • where (array_like, optional) -- 值为 True 表示在该位置计算 ufunc,值为 False 表示保留输出中的值不变。

  • **kwargs

返回:

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

返回类型:

Tensor, bool

参见

isinf, isneginf, isposinf, isnan

备注

非数字、正无穷大和负无穷大被视为非有限。

MaxFrame 使用 IEEE 二进制浮点数算术标准(IEEE 754)。这意味着非数字不等于无穷大。正无穷大也不等于负无穷大。但无穷大等同于正无穷大。如果在 x 为标量输入时提供了第二个参数,或者第一和第二参数形状不同,则会导致错误。

示例

>>> import maxframe.tensor as mt
>>> mt.isfinite(1).execute()
True
>>> mt.isfinite(0).execute()
True
>>> mt.isfinite(mt.nan).execute()
False
>>> mt.isfinite(mt.inf).execute()
False
>>> mt.isfinite(mt.NINF).execute()
False
>>> mt.isfinite([mt.log(-1.).execute(),1.,mt.log(0).execute()]).execute()
array([False,  True, False])
>>> x = mt.array([-mt.inf, 0., mt.inf])
>>> y = mt.array([2, 2, 2])
>>> mt.isfinite(x, y).execute()
array([0, 1, 0])
>>> y.execute()
array([0, 1, 0])