helpers.permute_columns

helpers.permute_columns(arr, columns=None, seed=None)

Randomly permute columns in a numpy ndarray

Parameters

Name Type Description Default
arr numpy.numpy.ArrayLike A numpy ndarray required
columns typing.Optional[typing.List[int]] If columns is None all columns will be randomly permuted, otherwise provide a list of columns to permute. Defaults to None. None
seed Optional[Union[int, np.random.Generator]]) If seedis an integer or None, a new numpy.random.Generator is created using np.random.default_rng(seed). If seed is already a `Generator instance, then the provided instance is used. Defaults to None. None

Returns: numpy ndarray with columns of choice randomly permuted

Examples:

import pyLHD
x = pyLHD.LatinHypercube(size = (5,3), seed = 1)
x
array([[0.70930042, 0.30930042, 0.10930042],
       [0.90930042, 0.50930042, 0.90930042],
       [0.10930042, 0.70930042, 0.30930042],
       [0.50930042, 0.90930042, 0.70930042],
       [0.30930042, 0.10930042, 0.50930042]])

Permute all columns

pyLHD.permute_columns(x)
array([[0.90930042, 0.10930042, 0.30930042],
       [0.10930042, 0.90930042, 0.90930042],
       [0.50930042, 0.50930042, 0.50930042],
       [0.30930042, 0.70930042, 0.70930042],
       [0.70930042, 0.30930042, 0.10930042]])

Permute columns [0,1] with seed=1

pyLHD.permute_columns(x, columns = [0,1], seed = 1)
array([[0.30930042, 0.90930042, 0.10930042],
       [0.70930042, 0.30930042, 0.90930042],
       [0.90930042, 0.50930042, 0.30930042],
       [0.10930042, 0.10930042, 0.70930042],
       [0.50930042, 0.70930042, 0.50930042]])