Condividi tramite


Funzione vector_norm

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

Calcola la norma Lp di un vettore usando il grado specificato.

Sintassi

vector_norm(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 (Manhattan): somma dei valori assoluti
    • 2.0 — L2 norma (euclideo): radice quadrata della somma dei quadrati
    • float('inf') — L∞ (norma infinito): valore assoluto massimo

Restituzioni

Valore FLOAT che rappresenta la norma del vettore. Il risultato è non negativo.

Restituisce 0,0 per vettori vuoti. Restituisce NULL 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 norma L2 è la più comune nei carichi di lavoro di incorporamento densi; L1 viene usato nelle applicazioni sparse e probabilistiche; L∞ viene usato nell'analisi del caso peggiore.

Condizioni di errore

Examples

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