jax.numpy.nan_to_num#
- jax.numpy.nan_to_num(x, copy=True, nan=0.0, posinf=None, neginf=None)[源代码]#
替换数组中的 NaN 和无穷大条目。
JAX 实现
numpy.nan_to_num()。- 参数:
x (ArrayLike) – 要替换值的数组。如果它没有不精确的 dtype,它将被原样返回。
copy (bool) – JAX 未使用
nan (ArrayLike) – 用于替换 NaN 条目的值。默认为 0.0。
posinf (ArrayLike | None) – 用于替换正无穷大条目的值。默认为可表示的最大值。
neginf (ArrayLike | None) – 用于替换正无穷大条目的值。默认为可表示的最小值。
- 返回:
对
x进行请求的替换的副本。- 返回类型:
另请参阅
jax.numpy.isnan(): 当数组包含 NaN 时返回 Truejax.numpy.isposinf(): 当数组包含 +inf 时返回 Truejax.numpy.isneginf(): 当数组包含 -inf 时返回 True
示例
>>> x = jnp.array([0, jnp.nan, 1, jnp.inf, 2, -jnp.inf])
默认替换值
>>> jnp.nan_to_num(x) Array([ 0.0000000e+00, 0.0000000e+00, 1.0000000e+00, 3.4028235e+38, 2.0000000e+00, -3.4028235e+38], dtype=float32)
重写
-inf和+inf的替换>>> jnp.nan_to_num(x, posinf=999, neginf=-999) Array([ 0., 0., 1., 999., 2., -999.], dtype=float32)
如果您只想替换 NaN 值而保留
inf值不变,使用带jax.numpy.isnan()的where()是一个更好的选择>>> jnp.where(jnp.isnan(x), 0, x) Array([ 0., 0., 1., inf, 2., -inf], dtype=float32)