# utilities¶

Utilities to Support Random Operations and Generating Vectors and Matrices

quantecon.random.utilities.draw(cdf, size=None)[source]

Generate a random sample according to the cumulative distribution given by cdf. Jit-complied by Numba in nopython mode.

Parameters:
cdfarray_like(float, ndim=1)

Array containing the cumulative distribution.

sizescalar(int), optional(default=None)

Size of the sample. If an integer is supplied, an ndarray of size independent draws is returned; otherwise, a single draw is returned as a scalar.

Returns:
scalar(int) or ndarray(int, ndim=1)

Examples

```>>> cdf = np.cumsum([0.4, 0.6])
>>> qe.random.draw(cdf)
1
>>> qe.random.draw(cdf, 10)
array([1, 0, 1, 0, 1, 0, 0, 0, 1, 0])
```
quantecon.random.utilities.ol_draw(cdf, size=None)[source]
quantecon.random.utilities.probvec(m, k, random_state=None, parallel=True)[source]

Return m randomly sampled probability vectors of dimension k.

Parameters:
mscalar(int)

Number of probability vectors.

kscalar(int)

Dimension of each probability vectors.

random_stateint or np.random.RandomState/Generator, optional

Random seed (integer) or np.random.RandomState or Generator instance to set the initial state of the random number generator for reproducibility. If None, a randomly initialized RandomState is used.

parallelbool(default=True)

Whether to use multi-core CPU (parallel=True) or single-threaded CPU (parallel=False). (Internally the code is executed through Numba.guvectorize.)

Returns:
xndarray(float, ndim=2)

Array of shape (m, k) containing probability vectors as rows.

Examples

```>>> qe.random.probvec(2, 3, random_state=1234)
array([[ 0.19151945,  0.43058932,  0.37789123],
[ 0.43772774,  0.34763084,  0.21464142]])
```
quantecon.random.utilities.sample_without_replacement(n, k, num_trials=None, random_state=None)[source]

Randomly choose k integers without replacement from 0, …, n-1.

Parameters:
nscalar(int)

Number of integers, 0, …, n-1, to sample from.

kscalar(int)

Number of integers to sample.

num_trialsscalar(int), optional(default=None)

Number of trials.

random_stateint or np.random.RandomState/Generator, optional

Random seed (integer) or np.random.RandomState or Generator instance to set the initial state of the random number generator for reproducibility. If None, a randomly initialized RandomState is used.

Returns:
resultndarray(int, ndim=1 or 2)

Array of shape (k,) if num_trials is None, or of shape (num_trials, k) otherwise, (each row of) which contains k unique random elements chosen from 0, …, n-1.

Examples

```>>> qe.random.sample_without_replacement(5, 3, random_state=1234)
array([0, 2, 1])
>>> qe.random.sample_without_replacement(5, 3, num_trials=4,
...                                      random_state=1234)
array([[0, 2, 1],
[3, 4, 0],
[1, 3, 2],
[4, 1, 3]])
```