次の方法で共有


vector_normalize 関数

適用対象:はい Databricks Runtime 18.1 以降とマークされているチェック

指定したノルム度を使用して、ベクトルを単位長に正規化します。

構文

vector_normalize(vector [, degree ])

引数

  • vector: ベクトルを表す ARRAY<FLOAT> 式。
  • degree: 省略可能。 標準型を指定する FLOAT 値。既定値は 2.0 (ユークリッドノルム) です。 サポートされている値:
    • 1.0 — L1 ノルム: 成分合計の絶対値 1
    • 2.0 — L2 ノルム: ユークリッド長さが 1 に等しい
    • float('inf') — L∞ノルム:最大絶対成分は1に等しい

返品

ARRAY<FLOAT>入力と同じ方向を持ち、指定された度の基準 1.0 の正規化されたベクトルを表します。

空のベクトルの空の配列を返します。 ベクトルに 0 のノルム (例: すべてのゼロ) がある場合、または入力がNULLまたはNULLを含む場合にNULLを返します。

メモ

  • ARRAY<FLOAT>のみがサポートされています。ARRAY<DOUBLE>ARRAY<DECIMAL>などの他の型ではエラーが発生します。 サポートされていない degree 値では 、INVALID_VECTOR_NORM_DEGREEが発生します。
  • L2 正規化は、高密度埋め込みワークロードの標準です。

エラー条件

例示

-- L2 normalization (Euclidean) - 3-4-5 triangle
> SELECT vector_normalize(array(3.0f, 4.0f), 2.0f);
  [0.6, 0.8]

-- Verify L2-normalized vector has unit norm
> SELECT vector_norm(vector_normalize(array(1.0f, 2.0f, 3.0f), 2.0f), 2.0f);
  1.0

-- Zero vector returns NULL
> SELECT vector_normalize(array(0.0f, 0.0f, 0.0f), 2.0f);
  NULL