scipy.stats.qmc.

scale#

scipy.stats.qmc.scale(sample, l_bounds, u_bounds, *, reverse=False)[源代码]#

采样从单位超立方体比例到不同边界。

要将采样从 \([0, 1)\) 转换为 \([a, b), b>a\),其中 \(a\) 为下边界 和 \(b\) 为上边界。使用以下转换

\[(b - a) \cdot \text{sample} + a\]
参数:
samplearray_like (n, d)

用于缩放的样本。

l_bounds, u_boundsarray_like (d,)

下边界和上边界(分别为 \(a\)\(b\))转换后的数据。如果 reverse 为 True,则将原始数据范围转换到单位超立方体中。

reversebool,可选

将转换从不同边界到单位超立方体逆反过来。默认值为 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]])