Partilhar via


vector_norm Função

Aplica-se a:sim Databricks Runtime 18.1 e superiores

Calcula a norma Lp de um vetor usando o grau especificado.

Sintaxe

vector_norm(vector [, degree ])

Argumentos

  • vetor: Uma expressão que ARRAY<FLOAT> representa o vetor.
  • grau: Opcional. Um FLOAT valor que especifica o tipo de norma; por defeito é 2.0 (norma euclidiana). Valores suportados:
    • 1.0 — norma L1 (Manhattan): soma dos valores absolutos
    • 2.0 — norma L2 (Euclidiana): raiz quadrada da soma dos quadrados
    • float('inf') — L∞ (norma do infinito): valor absoluto máximo

Devoluções

Um FLOAT valor que representa a norma do vetor. O resultado é não negativo.

Devolve 0,0 para vetores vazios. Retorna NULL se a entrada for NULL ou contiver NULL.

Notes

  • Apenas ARRAY<FLOAT> é suportado; outros tipos como ARRAY<DOUBLE> ou ARRAY<DECIMAL> gerar um erro. Um valor não sustentado degreeeleva INVALID_VECTOR_NORM_DEGREE.
  • A norma L2 é a mais comum em cargas de trabalho de embedding denso; O L1 é utilizado em aplicações esparsas e probabilísticas; L∞ é usado na análise do pior caso.

Condições de erro

Exemplos

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