scipy.stats.qmc.
scale#
- scipy.stats.qmc.scale(sample, l_bounds, u_bounds, *, reverse=False)[source]#
將樣本從單位超立方體縮放到不同邊界。
要將樣本從 \([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, optional
反轉從不同邊界到單位超立方體的轉換。預設值為 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]])