Condividi tramite


Funzione vector_normalize

Si applica a:check contrassegnato come sì Databricks Runtime 18.1 e versioni successive

Normalizza un vettore per la lunghezza dell'unità utilizzando il grado di norma specificato.

Sintassi

vector_normalize(vector [, degree ])

Arguments

  • vector: ARRAY<FLOAT> espressione che rappresenta il vettore.
  • degree: facoltativo. Valore FLOAT che specifica il tipo di norma. Il valore predefinito è 2,0 (norma euclidea). Valori supportati:
    • 1.0 — Norma L1: valori assoluti dei componenti sommati a 1
    • 2.0 — L2 norma: lunghezza euclidea uguale a 1
    • float('inf') — L∞ norma: componente assoluto massimo uguale a 1

Restituzioni

Oggetto ARRAY<FLOAT> che rappresenta il vettore normalizzato con la stessa direzione dell'input, ma con la norma 1,0 sotto il grado specificato.

Restituisce una matrice vuota per vettori vuoti. Restituisce NULL se il vettore ha zero norma (ad esempio, tutti gli zeri) o se l'input è NULL o contiene NULL.

Note

  • È supportato solo ARRAY<FLOAT> altri tipi, ARRAY<DOUBLE> ad esempio o ARRAY<DECIMAL> generano un errore. Un valore non supportato degree genera INVALID_VECTOR_NORM_DEGREE.
  • La normalizzazione L2 è lo standard nei carichi di lavoro di incorporamento densi.

Condizioni di errore

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