jax.numpy.nan_to_num#
- jax.numpy.nan_to_num(x, copy=True, nan=0.0, posinf=None, neginf=None)[原始碼]#
替換陣列中的 NaN 和無限值條目。
numpy.nan_to_num()
的 JAX 實作。- 參數:
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
值不動,使用where()
和jax.numpy.isnan()
是更好的選擇>>> jnp.where(jnp.isnan(x), 0, x) Array([ 0., 0., 1., inf, 2., -inf], dtype=float32)