📜  Python中的numpy.hypot(1)

📅  最后修改于: 2023-12-03 15:34:25.397000             🧑  作者: Mango

Python中的numpy.hypot

概述

numpy.hypot() 函数返回两个数组的欧几里得范数(即两数平方和的平方根)。在三维空间中,欧几里得范数即为两点之间的距离。

语法

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

  • x, y: 数组

  • out: 可选参数,如果指定,则结果将被放置其中。其形状必须与预期的输出形状一致。

  • where: 可选参数,它是一个布尔数组,它指定计算的哪些元素使用函数调用,其中True表示应该调用。

  • casting: 可选参数,得到结果的方式。'no', 'equiv', 'safe', 'same_kind', 'unsafe' 中的一种。

  • order: 可选参数,控制将行-major数组视为C-contiguous还是Fortran-contiguous,以及是否转置行和列的一种方式。其中 'C', 'F', 'A', 'K' 或它们的组合可以用于指定。

  • dtype: 可选参数,输出结果的数据类型。

  • subok: 可选参数,如果为True,则将结果视为与a和b的子类相同。

  • signature: 给定类型的函数签名,其中包括可选的清单,形状,名称和标量。更多相关信息,可以参考 NumPy文档。

  • extobj: 默认情况下,这个参数没有用途。

返回值

返回两个数组的欧几里得范数。

示例
import numpy as np

a = np.array([3, 4])
b = np.array([1, 2])

c = np.hypot(a, b)

print(c)

输出:

[3.16227766 4.472136  ]

上述代码将计算两个数组 a 和 b 中每个元素对应位置上的欧几里得范数。

当然,我们也可以使用 np.linalg.norm() 函数计算 Euclidean distance:

import numpy as np

a = np.array([3, 4])
b = np.array([1, 2])

c = np.linalg.norm(a-b)

print(c)

输出:

2.8284271247461903

可以看到,两个函数的计算结果是一样的。np.hypot() 函数的优势是计算两个数组的欧几里得范数更加方便。

总结

numpy.hypot() 是个十分实用的函数,它十分方便地实现了计算两个数组的 Euclidean distance 的操作。这个函数在计算机视觉、图像处理、三维建模等应用中都有着广泛的应用。