scipy.stats.qmc.

scale#

scipy.stats.qmc.scale(sample, l_bounds, u_bounds, *, обратный=False)[источник]#

Масштабирование выборки из единичного гиперкуба к различным границам.

Для преобразования выборки из \([0, 1)\) to \([a, b), b>a\), с \(a\) нижние границы и \(b\) верхние границы. Используется следующее преобразование:

\[(b - a) \cdot \text{sample} + a\]
Параметры:
samplearray_like (n, d)

Образец для масштабирования.

l_bounds, u_boundsarray_like (d,)

Нижняя и верхняя границы (соответственно. \(a\), \(b\)) преобразованных данных. Если обратный равно True, диапазон исходных данных для преобразования в единичный гиперкуб.

обратныйbool, необязательно

Обратное преобразование из различных границ в единичный гиперкуб. По умолчанию False.

Возвращает:
samplearray_like (n, d)

Масштабированная выборка.

Примеры

Преобразовать 3 выборки в единичном гиперкубе в границы:

>>> from scipy.stats import qmc
>>> l_bounds = [-2, 0]
>>> u_bounds = [6, 5]
>>> sample = [[0.5 , 0.75],
...           [0.5 , 0.5],
...           [0.75, 0.25]]
>>> sample_scaled = qmc.scale(sample, l_bounds, u_bounds)
>>> sample_scaled
array([[2.  , 3.75],
       [2.  , 2.5 ],
       [4.  , 1.25]])

И преобразовать обратно в единичный гиперкуб:

>>> sample_ = qmc.scale(sample_scaled, l_bounds, u_bounds, reverse=True)
>>> sample_
array([[0.5 , 0.75],
       [0.5 , 0.5 ],
       [0.75, 0.25]])