Freigeben über


vector_norm-Funktion

Gilt für:check marked yes Databricks Runtime 18.1 und höher

Berechnet die Lp-Norm eines Vektors mithilfe des angegebenen Grads.

Syntax

vector_norm(vector [, degree ])

Argumente

  • Vektor: Ein ARRAY<FLOAT> Ausdruck, der den Vektor darstellt.
  • grad: Optional. Ein FLOAT Wert, der den Normtyp angibt; standardwert ist 2,0 (Euklidische Norm). Unterstützte Werte:
    • 1,0 — L1 Norm (Manhattan): Summe der absoluten Werte
    • 2.0 — L2 Norm (Euklidan): Quadratwurzel der Summe von Quadraten
    • float('inf') — L∞ (Unendlichkeitsnorm): Maximalwert

Rückkehr

Ein FLOAT Wert, der die Norm des Vektors darstellt. Das Ergebnis ist nicht negativ.

Gibt 0,0 für leere Vektoren zurück. Gibt zurück NULL , wenn die Eingabe vorhanden ist NULL oder enthält NULL.

Hinweise

  • Nur ARRAY<FLOAT> wird unterstützt; andere Typen wie ARRAY<DOUBLE> z. B. oder ARRAY<DECIMAL> Auslösen eines Fehlers. Ein nicht unterstützter degree Wert löst INVALID_VECTOR_NORM_DEGREE aus.
  • L2-Norm ist die am häufigsten bei dichten Einbettungsworkloads; L1 wird in sparse und probabilistischen Anwendungen verwendet; L∞ wird in der Worst-Case-Analyse verwendet.

Fehlerbedingungen

Beispiele

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