numpy.hypot()

Функция numpy.hypot() поэлементно вычисляет sqrt(x1**2 + x2**2) — гипотенузу прямоугольного треугольника с катетами x1 и x2. Используется численно устойчивая реализация, защищённая от переполнения.

Сигнатура

numpy.hypot(x1, x2, /, out=None, *, where=True, casting='same_kind',
            order='K', dtype=None, subok=True[, signature, extobj])

Параметры

  • x1, x2 — массивы катетов (broadcast).

  • out — массив-приёмник.

  • where — маска применения.

  • dtype — тип результата.

Возвращаемое значение

ndarray или скаляр — поэлементные длины гипотенуз sqrt(x1**2 + x2**2).

Примеры

Пример 1. Треугольник 3-4-5.

import numpy as np

print(np.hypot(3, 4))
5.0

Пример 2. Массивы катетов.

a = np.array([3, 5, 8])
b = np.array([4, 12, 15])
print(np.hypot(a, b))
[ 5. 13. 17.]

Пример 3. Расстояние от точки до начала координат.

x = np.array([1.0, 2.0, 3.0])
y = np.array([1.0, 2.0, 4.0])
dist = np.hypot(x, y)
print(dist.round(3))
[1.414 2.828 5.   ]

Пример 4. Модуль ускорения по двум осям.

# Акселерометр: x и y компоненты, м/с²
ax = np.array([0.1, 0.5, 1.0, -0.2])
ay = np.array([0.2, 0.0, 0.5,  0.3])
a_total = np.hypot(ax, ay)
print("Модуль ускорения:", a_total.round(3))
Модуль ускорения: [0.224 0.5   1.118 0.361]

Пример 5. Численная устойчивость при больших числах.

x = 1e200
y = 1e200
# В отличие от sqrt(x**2 + y**2), здесь нет переполнения
print(np.hypot(x, y))
1.4142135623730951e+200

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.