適用対象:はい Databricks Runtime 18.1 以降と![]()
指定した次数を使用して、ベクトルの Lp ノルムを計算します。
構文
vector_norm(vector [, degree ])
引数
-
vector: ベクトルを表す
ARRAY<FLOAT>式。 -
degree: 省略可能。 標準型を指定する
FLOAT値。既定値は 2.0 (ユークリッドノルム) です。 サポートされている値:- 1.0 — L1 ノルム (マンハッタン): 絶対値の合計
- 2.0 — L2 ノルム (ユークリッド): 平方和の平方根
-
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