Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
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
FLOATvalor 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, comoARRAY<DOUBLE>ouARRAY<DECIMAL>gerar um erro. Um valor sem suportedegreegera 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