numpy.arctan2()
Функция numpy.arctan2(y, x) вычисляет поэлементный арктангенс отношения y / x с учётом знаков обоих аргументов. Возвращает угол радиус-вектора точки (x, y) в диапазоне (-π, π].
Сигнатура
numpy.arctan2(x1, x2, /, out=None, *, where=True, casting='same_kind',
order='K', dtype=None, subok=True[, signature, extobj])
Параметры
x1— y-координата (числитель).x2— x-координата (знаменатель).out— массив для записи результата.where— маска.dtype— тип результата.
Возвращаемое значение
ndarray или скаляр: углы в радианах в (-π, π].
Примеры
Пример 1. Углы по четвертям.
import numpy as np
y = np.array([1, 1, -1, -1])
x = np.array([1, -1, -1, 1])
print(np.degrees(np.arctan2(y, x)))
[ 45. 135. -135. -45.]
Пример 2. Отличие от ``arctan``.
print(np.arctan(1 / -1)) # -45° — неверная четверть
print(np.arctan2(1, -1)) # 135° — корректно
-0.7853981633974483
2.356194490192345
Пример 3. Угол курса по компасу (X — север, Y — восток).
north = 3.0
east = -4.0
heading = (np.degrees(np.arctan2(east, north)) + 360) % 360
print(f"Курс: {heading:.1f}°")
Курс: 306.9°
Пример 4. Векторизация по массивам координат.
xs = np.array([1, 0, -1, 0])
ys = np.array([0, 1, 0, -1])
print(np.arctan2(ys, xs))
[ 0. 1.57079633 3.14159265 -1.57079633]
Пример 5. Угол между ускорением по осям X и Y акселерометра.
ax = 0.5
ay = 0.5
pitch = np.degrees(np.arctan2(ay, ax))
print(f"Pitch: {pitch:.1f}°")
Pitch: 45.0°
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.