Freigeben über


vector_normalize-Funktion

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

Normalisiert einen Vektor auf die Länge der Einheit mithilfe des angegebenen Normgrads.

Syntax

vector_normalize(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: Absolute Werte der Komponentensumme auf 1
    • 2.0 — L2 Norm: Euklidische Länge entspricht 1
    • float('inf') — L∞ Norm: maximale absolute Komponente gleich 1

Rückkehr

Ein ARRAY<FLOAT> Vektor, der den normalisierten Vektor mit der gleichen Richtung wie die Eingabe, aber mit der Norm 1,0 unter dem angegebenen Grad darstellt.

Gibt ein leeres Array für leere Vektoren zurück. Gibt zurück NULL , wenn der Vektor null normiert (z. B. alle Nullen) oder 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 Normalisierung ist der Standard in dichte Einbettungsworkloads.

Fehlerbedingungen

Beispiele

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