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.