Sdílet prostřednictvím


vector_normalize Funkce

Platí pro:check označený ano Databricks Runtime 18.1 a novější

Normalizuje vektor na délku jednotky pomocí zadaného stupně normy.

Syntaxe

vector_normalize(vector [, degree ])

Argumenty

  • vector: Výraz ARRAY<FLOAT> představující vektor.
  • degree: Nepovinný. Hodnota FLOAT určující typ normy; výchozí hodnota je 2,0 (Euclidean norm). Podporované hodnoty:
    • 1.0 – norma L1: absolutní hodnoty součet složek na 1
    • 2.0 — L2 norm: Euclidean délka se rovná 1
    • float('inf') — L∞ norma: maximální absolutní komponenta se rovná 1

Návraty

Představuje ARRAY<FLOAT> normalizovaný vektor se stejným směrem jako vstup, ale s normou 1,0 pod zadaným stupněm.

Vrátí prázdné pole pro prázdné vektory. Vrátí NULL , pokud vektor má nulovou normu (např. všechny nuly) nebo pokud je NULL vstup nebo obsahuje NULL.

Poznámky

  • Podporuje se pouze ARRAY<FLOAT> jiné typy, například ARRAY<DOUBLE> nebo ARRAY<DECIMAL> vyvolání chyby. Nepodporovaná degree hodnota zvyšuje INVALID_VECTOR_NORM_DEGREE.
  • Normalizace L2 je standard v hustých úlohách vkládání.

Stavy chyb

Příklady

-- 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