Compartilhar via


vector_normalize Função

Aplica-se a:check marked yes Databricks Runtime 18.1 e superior

Normaliza um vetor para o comprimento da unidade usando o grau de norma especificado.

Sintaxe

vector_normalize(vector [, degree ])

Argumentos

  • vector: uma expressão ARRAY<FLOAT> que representa o vetor.
  • grau: opcional. Um FLOAT valor que especifica o tipo de norma; o padrão é 2.0 (norma euclidiana). Valores com suporte:
    • 1.0 — Norma L1: valores absolutos de componentes somam 1
    • 2.0 — Norma L2: comprimento euclidiano igual a 1
    • float('inf') — L∞ norma: o componente absoluto máximo é igual a 1

Devoluções

Um ARRAY<FLOAT> vetor normalizado com a mesma direção que a entrada, mas com a norma 1.0 no grau especificado.

Retorna uma matriz vazia para vetores vazios. Retornará NULL se o vetor tiver nenhuma norma (por exemplo, todos os zeros) ou se a entrada for NULL ou contiver NULL.

Observações

  • Há suporte apenas ARRAY<FLOAT> para outros tipos, como ARRAY<DOUBLE> ou ARRAY<DECIMAL> gerar um erro. Um valor sem suporte degree gera INVALID_VECTOR_NORM_DEGREE.
  • A normalização L2 é o padrão em cargas de trabalho de inserção densas.

Condições de erro

Exemplos

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