jax.random.dirichlet(key, alpha, shape=None, dtype=<class 'numpy.float64'>)[source]#

Sample Dirichlet random values with given shape and float dtype.

The values are distributed according the the probability density function:

\[f(\{x_i\}; \{\alpha_i\}) = \propto \prod_{i=1}^k x_i^{\alpha_i}\]

Where \(k\) is the dimension, and \(\{x_i\}\) satisfies

\[\sum_{i=1}^k x_i = 1\]

and \(0 \le x_i \le 1\) for all \(x_i\).

  • key (Union[Array, PRNGKeyArray]) – a PRNG key used as the random key.

  • alpha (Union[Array, ndarray, bool_, number, bool, int, float, complex]) – an array of shape (..., n) used as the concentration parameter of the random variables.

  • shape (Optional[Sequence[int]]) – optional, a tuple of nonnegative integers specifying the result batch shape; that is, the prefix of the result shape excluding the last element of value n. Must be broadcast-compatible with alpha.shape[:-1]. The default (None) produces a result shape equal to alpha.shape.

  • dtype (Union[Any, str, dtype, SupportsDType]) – optional, a float dtype for the returned values (default float64 if jax_enable_x64 is true, otherwise float32).

Return type



A random array with the specified dtype and shape given by shape + (alpha.shape[-1],) if shape is not None, or else alpha.shape.