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]])