Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
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
FLOATurč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říkladARRAY<DOUBLE>neboARRAY<DECIMAL>vyvolání chyby. Nepodporovanádegreehodnota 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