Udostępnij za pośrednictwem


Funkcja vector_normalize

Dotyczy:sprawdzanie oznaczone jako tak Databricks Runtime 18.1 i nowszych

Normalizuje wektor do długości jednostki przy użyciu określonego stopnia normy.

Składnia

vector_normalize(vector [, degree ])

Arguments

  • vector: ARRAY<FLOAT> wyrażenie reprezentujące wektor.
  • stopień: Opcjonalnie. Wartość FLOAT określająca typ normy; wartość domyślna to 2.0 (norma euklidesowa). Obsługiwane wartości:
    • 1.0 — norma L1: wartości bezwzględne składników sumować do 1
    • 2.0 — norma L2: Długość euklidesowa równa 1
    • float('inf') — L∞ normę: maksymalny składnik bezwzględny równy 1

Zwroty

Reprezentacja ARRAY<FLOAT> znormalizowanego wektora z tym samym kierunkiem co wejście, ale z normą 1.0 poniżej określonego stopnia.

Zwraca pustą tablicę dla pustych wektorów. Zwraca wartość NULL , jeśli wektor ma zero norm (np. wszystkie zera) lub jeśli dane wejściowe są NULL lub zawierają NULLwartość .

Notatki

  • Obsługiwane są tylko ARRAY<FLOAT> inne typy, takie jak ARRAY<DOUBLE> lub ARRAY<DECIMAL> zgłaszają błąd. Nieobsługiwana degree wartość podnosi INVALID_VECTOR_NORM_DEGREE.
  • Normalizacja L2 jest standardem w gęstych obciążeniach osadzania.

Warunki błędu

Examples

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