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 副本。

傳回類型:

Array

另請參閱

範例

>>> 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)