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
Calcule la norme Lp d’un vecteur à l’aide du degré spécifié.
Syntaxe
vector_norm(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 (Manhattan) : somme des valeurs absolues
- 2.0 — Norme L2 (Euclidean) : racine carrée de somme de carrés
-
float('inf')— L∞ (norme d’infini) : valeur absolue maximale
Retours
Valeur FLOAT représentant la norme du vecteur. Le résultat est non négatif.
Retourne la valeur 0.0 pour les vecteurs vides. Retourne NULL 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 norme L2 est la plus courante dans les charges de travail d’incorporation denses ; L1 est utilisé dans les applications éparses et probabilistes ; L∞ est utilisé dans le pire des cas d’analyse.
Conditions de l’erreur
Exemples
-- 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