Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks Runtime 18.1 et versions ultérieures
Normalise un vecteur en longueur d’unité à l’aide du degré de norme spécifié.
Syntaxe
vector_normalize(vector [, degree ])
Arguments
-
vecteur :
ARRAY<FLOAT>expression représentant le vecteur. -
degré : facultatif. Valeur
FLOATspécifiant le type de norme ; est définie par défaut sur 2,0 (norme euclide). Valeurs prises en charge :- 1.0 — Norme L1 : valeurs absolues des composants à 1
- 2.0 — Norme L2 : la longueur euclide est égale à 1
-
float('inf')— L∞ norme : le composant absolu maximal est égal à 1
Retours
Représentant ARRAY<FLOAT> le vecteur normalisé avec la même direction que l’entrée, mais avec la norme 1,0 sous le degré spécifié.
Retourne un tableau vide pour les vecteurs vides. Retourne NULL si le vecteur a une norme zéro (par exemple, tous les zéros) ou si l’entrée est NULL ou contient NULL.
Remarques
- Seul
ARRAY<FLOAT>est pris en charge ; d’autres types tels queARRAY<DOUBLE>ouARRAY<DECIMAL>déclenchent une erreur. Une valeur non prise en chargedegreedéclenche INVALID_VECTOR_NORM_DEGREE. - La normalisation L2 est la norme dans les charges de travail d’incorporation denses.
Conditions de l’erreur
Exemples
-- 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