📅  最后修改于: 2023-12-03 15:34:25.397000             🧑  作者: Mango
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 的操作。这个函数在计算机视觉、图像处理、三维建模等应用中都有着广泛的应用。