jax.numpy.nancumprod#
- jax.numpy.nancumprod(a, axis=None, dtype=None, out=None)[source]#
Cumulative product of elements along an axis, ignoring NaN values.
JAX implementation of
numpy.nancumprod()
.- Parameters:
a (ArrayLike) – N-dimensional array to be accumulated.
axis (int | None) – integer axis along which to accumulate. If None (default), then array will be flattened and accumulated along the flattened axis.
dtype (DTypeLike | None) – optionally specify the dtype of the output. If not specified, then the output dtype will match the input dtype.
out (None) – unused by JAX
- Returns:
An array containing the accumulated product along the given axis.
- Return type:
See also
jax.numpy.cumprod()
: cumulative product without ignoring NaN values.jax.numpy.multiply.accumulate()
: cumulative product via ufunc methods.jax.numpy.prod()
: product along axis
Examples
>>> x = jnp.array([[1., 2., jnp.nan], ... [4., jnp.nan, 6.]])
The standard cumulative product will propagate NaN values:
>>> jnp.cumprod(x) Array([ 1., 2., nan, nan, nan, nan], dtype=float32)
nancumprod()
will ignore NaN values, effectively replacing them with ones:>>> jnp.nancumprod(x) Array([ 1., 2., 2., 8., 8., 48.], dtype=float32)
Cumulative product along axis 1:
>>> jnp.nancumprod(x, axis=1) Array([[ 1., 2., 2.], [ 4., 4., 24.]], dtype=float32)