scipy.stats.uniform_direction#
-
scipy.stats.uniform_direction =
object> [источник]# Векторно-значное равномерное направление.
Возвращает случайное направление (единичный вектор). размерность ключевое слово определяет размерность пространства.
- Параметры:
- размерностьскаляр
Размерность направлений.
- seed{None, int,
numpy.random.Generator, numpy.random.RandomState, опциональноИспользуется для генерации случайных величин. Если seed является None, RandomState используется синглтон. Если seed является int, новый
RandomStateиспользуется экземпляр, инициализированный с seed. Если seed уже являетсяRandomStateилиGeneratorэкземпляр, то этот объект используется. По умолчанию None.
Методы
rvs(dim=None, size=1, random_state=None)
Генерировать случайные направления.
Примечания
Это распределение генерирует единичные векторы, равномерно распределённые по поверхности гиперсферы. Их можно интерпретировать как случайные направления. Например, если размерность равно 3, 3D векторы с поверхности \(S^2\) будет выбрано.
Ссылки
[1]Marsaglia, G. (1972). "Choosing a Point from the Surface of a Sphere". Annals of Mathematical Statistics. 43 (2): 645-646.
Примеры
>>> import numpy as np >>> from scipy.stats import uniform_direction >>> x = uniform_direction.rvs(3) >>> np.linalg.norm(x) 1.
Это генерирует одно случайное направление, вектор на поверхности \(S^2\).
Кроме того, объект может быть вызван (как функция) для возврата замороженного распределения с фиксированными размерность параметр. Здесь мы создаем
uniform_directionсdim=3и извлечь 5 наблюдений. Затем выборки располагаются в массиве формы 5x3.>>> rng = np.random.default_rng() >>> uniform_sphere_dist = uniform_direction(3) >>> unit_vectors = uniform_sphere_dist.rvs(5, random_state=rng) >>> unit_vectors array([[ 0.56688642, -0.1332634 , -0.81294566], [-0.427126 , -0.74779278, 0.50830044], [ 0.3793989 , 0.92346629, 0.05715323], [ 0.36428383, -0.92449076, -0.11231259], [-0.27733285, 0.94410968, -0.17816678]])