Source code for UQpy.sampling.stratified_sampling.latin_hypercube_criteria.Random

from UQpy.sampling.stratified_sampling.latin_hypercube_criteria import Criterion
import numpy as np


[docs]class Random(Criterion): def __init__(self): """ Method for generating a Latin hypercube design by sampling randomly inside each bin. The :class:`Random` class takes a set of samples drawn randomly from within the Latin hypercube bins and performs a random shuffling of them to pair the variables. """ super().__init__() def generate_samples(self, random_state): lhs_samples = np.zeros_like(self.samples) samples_number = len(self.samples) for j in range(self.samples.shape[1]): if random_state is not None: order = random_state.permutation(samples_number) else: order = np.random.permutation(samples_number) lhs_samples[:, j] = self.samples[order, j] return lhs_samples