Partager via


vector_norm Fonction

S’applique à :check marqué oui 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 FLOAT spé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 que ARRAY<DOUBLE> ou ARRAY<DECIMAL> déclenchent une erreur. Une valeur non prise en charge degree dé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