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.