random#
- classmethod Rotation.random(cls, num=None, rng=None)#
產生均勻分佈的旋轉。
- 參數:
- num整數或 None,選填
要產生的隨機旋轉數量。如果為 None (預設),則產生單一旋轉。
- rng{None, 整數,
numpy.random.Generator
}, 選填 如果 rng 通過關鍵字傳遞,則
numpy.random.Generator
以外的類型會傳遞給numpy.random.default_rng
以實例化Generator
。如果 rng 已經是Generator
實例,則使用提供的實例。指定 rng 以獲得可重複的函數行為。如果此參數通過位置傳遞,或者 random_state 通過關鍵字傳遞,則適用於參數 random_state 的舊版行為
如果 random_state 為 None (或
numpy.random
),則使用numpy.random.RandomState
單例。如果 random_state 是整數,則會使用新的
RandomState
實例,並以 random_state 作為種子。如果 random_state 已經是
Generator
或RandomState
實例,則使用該實例。
版本變更於 1.15.0: 作為從使用
numpy.random.RandomState
過渡到numpy.random.Generator
的 SPEC-0007 轉換的一部分,此關鍵字從 random_state 變更為 rng。在過渡期間,兩個關鍵字將繼續有效,儘管一次只能指定一個。在過渡期之後,使用 random_state 關鍵字的函數呼叫將發出警告。上面概述了 random_state 和 rng 的行為,但在新程式碼中應僅使用 rng 關鍵字。
- 回傳值:
- random_rotation
Rotation
實例 如果 num 為 None,則包含單一旋轉。否則包含 num 個旋轉的堆疊。
- random_rotation
註解
此函數針對有效率地採樣三維隨機旋轉矩陣進行了最佳化。為了產生更高維度的隨機旋轉矩陣,請參閱
scipy.stats.special_ortho_group
。範例
>>> from scipy.spatial.transform import Rotation as R
採樣單一旋轉
>>> R.random().as_euler('zxy', degrees=True) array([-110.5976185 , 55.32758512, 76.3289269 ]) # random
採樣堆疊旋轉
>>> R.random(5).as_euler('zxy', degrees=True) array([[-110.5976185 , 55.32758512, 76.3289269 ], # random [ -91.59132005, -14.3629884 , -93.91933182], [ 25.23835501, 45.02035145, -121.67867086], [ -51.51414184, -15.29022692, -172.46870023], [ -81.63376847, -27.39521579, 2.60408416]])