Skip to content

spacefilling

spacefilling

Bases: designs

Source code in spotPython/design/spacefilling.py
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class spacefilling(designs):
    def __init__(self, k=2, seed=123):
        """
        Spacefilling design class

        Args:
            k (int, optional): number of design variables (dimensions). Defaults to 2.
            seed (int, optional): random seed. Defaults to 123.
        """
        self.k = k
        self.seed = seed
        super().__init__(k, seed)
        self.sampler = LatinHypercube(d=self.k, seed=self.seed)

    def scipy_lhd(self, n, repeats=1, lower=None, upper=None):
        """
        Latin hypercube sampling based on scipy.

        Args:
            n (int): number of samples
            repeats (int): number of repeats (replicates)
            lower (int, optional): lower bound. Defaults to 0.
            upper (int, optional): upper bound. Defaults to 1.

        Returns:
            (numpy.ndarray): Latin hypercube design.
        """
        if lower is None:
            lower = zeros(self.k)
        if upper is None:
            upper = ones(self.k)
        sample = self.sampler.random(n=n)
        des = scale(sample, lower, upper)
        return repeat(des, repeats, axis=0)

__init__(k=2, seed=123)

Spacefilling design class

Parameters:

Name Type Description Default
k int

number of design variables (dimensions). Defaults to 2.

2
seed int

random seed. Defaults to 123.

123
Source code in spotPython/design/spacefilling.py
10
11
12
13
14
15
16
17
18
19
20
21
def __init__(self, k=2, seed=123):
    """
    Spacefilling design class

    Args:
        k (int, optional): number of design variables (dimensions). Defaults to 2.
        seed (int, optional): random seed. Defaults to 123.
    """
    self.k = k
    self.seed = seed
    super().__init__(k, seed)
    self.sampler = LatinHypercube(d=self.k, seed=self.seed)

scipy_lhd(n, repeats=1, lower=None, upper=None)

Latin hypercube sampling based on scipy.

Parameters:

Name Type Description Default
n int

number of samples

required
repeats int

number of repeats (replicates)

1
lower int

lower bound. Defaults to 0.

None
upper int

upper bound. Defaults to 1.

None

Returns:

Type Description
numpy.ndarray

Latin hypercube design.

Source code in spotPython/design/spacefilling.py
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
def scipy_lhd(self, n, repeats=1, lower=None, upper=None):
    """
    Latin hypercube sampling based on scipy.

    Args:
        n (int): number of samples
        repeats (int): number of repeats (replicates)
        lower (int, optional): lower bound. Defaults to 0.
        upper (int, optional): upper bound. Defaults to 1.

    Returns:
        (numpy.ndarray): Latin hypercube design.
    """
    if lower is None:
        lower = zeros(self.k)
    if upper is None:
        upper = ones(self.k)
    sample = self.sampler.random(n=n)
    des = scale(sample, lower, upper)
    return repeat(des, repeats, axis=0)