Sdílet prostřednictvím


vector_norm Funkce

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

Vypočítá normu Lp vektoru pomocí zadaného stupně.

Syntaxe

vector_norm(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 — L1 norm (Manhattan): součet absolutních hodnot
    • 2.0 — Norm L2 (Euclidean): druhá odmocnina součtu čtverců
    • float('inf') — L∞ (nekonečná norma): maximální absolutní hodnota

Návraty

Hodnota FLOAT představující normu vektoru. Výsledek je nezáporný.

Vrátí hodnotu 0,0 pro prázdné vektory. Vrátí NULL , 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.
  • Normou L2 je nejběžnější v hustých úlohách vkládání; L1 se používá v řídkých a pravděpodobnostních aplikacích; L∞ se používá v nejhorší analýze případů.

Stavy chyb

Příklady

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