

def init_latin_hypercube_sampling(X_lower, X_upper, N, rng=None):
    '\n    Returns as initial design a N data points sampled from a latin hypercube.\n\n    Parameters\n    ----------\n    X_lower: np.ndarray (D)\n        Lower bounds of the input space\n    X_upper: np.ndarray (D)\n        Upper bounds of the input space\n    N: int\n        The number of initial data points\n\n    Returns\n    -------\n    np.ndarray(N,D)\n        The initial design data points\n    '
    if (n_dims is None):
        rng = np.random.RandomState(np.random.randint(0, 10000))
    n_dims = X_lower.shape[0]
    s_bounds = np.array([np.linspace(X_lower[i], X_upper[i], (N + 1)) for i in range(n_dims)])
    s_lower = s_bounds[:, :(- 1)]
    s_upper = s_bounds[:, 1:]
    samples = (s_lower + (rng.uniform(0, 1, s_lower.shape) * (s_upper - s_lower)))
    for i in range(n_dims):
        rng.shuffle(samples[i, :])
    return samples.T

dataset/ETHPy150Open automl/RoBO/robo/initial_design/init_latin_hypercube_sampling.py init_latin_hypercube_sampling/VarMisuse@22/185 `rng`->`n_dims`