适用于:
Databricks Runtime 18.1 及更高版本
使用指定的度计算向量的 Lp 规范。
Syntax
vector_norm(vector [, degree ])
Arguments
-
vector:表示
ARRAY<FLOAT>向量的表达式。 -
degree:可选。 指定
FLOAT规范类型的值;默认值为 2.0(Euclidean norm)。 支持的值:- 1.0 — L1 norm (曼哈顿): 绝对值之和
- 2.0 - L2 norm (Euclidean): 平方平方根的平方根
-
float('inf')— L∞ (无穷大规范): 最大绝对值
退货
一个 FLOAT 表示向量规范的值。 结果为非负。
为空向量返回 0.0。 返回 NULL 输入是否为 NULL 或包含 NULL。
备注
- 仅
ARRAY<FLOAT>受支持;其他类型的(例如ARRAY<DOUBLE>或ARRAY<DECIMAL>引发错误)。 不支持degree的值会引发 INVALID_VECTOR_NORM_DEGREE。 - L2 规范是密集嵌入工作负载中最常见的一种:L1 用于稀疏和概率应用程序;L∞用于最坏的情况分析。
错误条件
示例
-- L2 norm (Euclidean) - classic 3-4-5 triangle
> SELECT vector_norm(array(3.0f, 4.0f), 2.0f);
5.0
-- L1 norm (Manhattan)
> SELECT vector_norm(array(3.0f, 4.0f), 1.0f);
7.0
-- L∞ norm (infinity)
> SELECT vector_norm(array(3.0f, 4.0f), float('inf'));
4.0
-- Empty vector returns 0.0
> SELECT vector_norm(array(), 2.0);
0.0