Проект для работы с данными, распределенными на поверхности гиперсферы.
Project description
SphericalData
Модуль для работы с данными, распределенными на поверхности гиперсферы.
Руководство по использованию
Данный модуль позволяет выполнять следующие действия:
1. Преобразование массива данных из декартовой системы координат в сферическую
Функция toSpheric() принимает на вход массив данных $X$ в декартовой системе координат размерностью $(N, M)$, где $N \geq 1$, $M \geq 3$. Тип входных данных — список (list) или массив Numpy (numpy.ndarray).
На выходе пользователь получает массив типа Numpy $X'$ размерностью $(N, M)$, где значение $X'[n, m]$ при
- $m = 0$ — радиальное расстояние $r \geq 0$;
- $m = \overline{1, M-2}$ — зенитные углы $\phi_{m} \in [0; \pi]$;
- $m = M-1$ — азимутальный угол $\theta \in [-\pi; \pi)$.
Вычисление компонент в сферической системе координат проводится по следующим формулам: $$r_n = \sqrt{\sum_{i=0}^{M-1}{x_i^2}}$$ $$\phi_{n, m} = atan2(\sqrt{\sum_{i=m+1}^{M-1}{x_i^2}}, x_m)$$ $$\theta_n = atan2(x_{M-1}, x_{M-2})$$ $$atan2(y, x) = arctg(\frac{y}{x})$$
Пример программы:
import numpy as np
from sphericaldata.spheric import toSpheric
x_cart = [[1, 2, 3], [4, 5, 6]]
# x_cart = np.array([[1, 2, 3], [4, 5, 6]])
x_sph = toSpheric(x)
print(x_sph)
[[3.74165739 1.30024656 0.98279372]
[8.77496439 1.097478 0.87605805]]
2. Преобразование массива данных из сферической системы координат в декартову
В противовес функции выше toCartesian() принимает на вход массив данных $X$ в сферической системе координат размерностью $(N, M)$, описание входных данных аналогично выходу функции toSpheric(). Тип входных данных — список (list) или массив Numpy (numpy.ndarray).
На выходе пользователь получает массив типа Numpy $X'$ размерностью $(N, M)$ в декартовой системе координат.
Вычисление компонент в декартовой системе координат проводится по следующим формулам:
$$x'{n, 0} = r\cos{\phi{n,0}}$$ $$x'{n, m} = r\cos{\phi{n,m}}\prod_{i=0}^{m-1}{\sin{\phi_{n,i}}}, m=\overline{1, M-2}$$ $$x'{n, M-1} = r\prod{i=0}^{M-1}{\sin{\phi_{n,i}}}$$
Проведём обратное преобразование для результата, полученного в примере ранее.
from sphericaldata.spheric import toCartesian
x_cart = toCartesian(x_sph)
print(x_cart)
[[1. 2. 3.]
[4. 5. 6.]]
3. Проведение метода главных компонент (PCA) в сферической системе координат
Если множество $M$-мерных векторов $X$ определено в положительной четверти гиперсферы ($\phi_m \in [0; \pi], \theta \in [0; \pi]$, )
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sphericaldata-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c3068d9792cf10f5eb6494ca2f68b34b94a22b86ecc663c90a0cf1ac8ed3c0f |
|
MD5 | 5ea636d2ecd823fbe5b6873c36ccfc68 |
|
BLAKE2b-256 | b4f1a3f2eb2795c947a78edbc15923faa5abc36c9364df51c56cfcdc02b48240 |