Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Runtime 18.1 e superiores
Normaliza um vetor ao comprimento unitário usando o grau de norma especificado.
Sintaxe
vector_normalize(vector [, degree ])
Argumentos
-
vetor: Uma expressão que
ARRAY<FLOAT>representa o vetor. -
grau: Opcional. Um
FLOATvalor que especifica o tipo de norma; por defeito é 2.0 (norma euclidiana). Valores suportados:- 1.0 — Norma L1: valores absolutos dos componentes somam 1
- 2.0 — norma L2: comprimento euclidiano igual a 1
-
float('inf')— L∞ norma: componente máxima absoluta igual a 1
Devoluções
An ARRAY<FLOAT> representa o vetor normalizado com a mesma direção da entrada, mas com norma 1.0 sob o grau especificado.
Devolve um array vazio para vetores vazios. Retorna NULL se o vetor tiver norma zero (por exemplo, todos zeros) ou se a entrada for NULL ou contiver NULL.
Notes
- Apenas
ARRAY<FLOAT>é suportado; outros tipos comoARRAY<DOUBLE>ouARRAY<DECIMAL>gerar um erro. Um valor não sustentadodegreeeleva INVALID_VECTOR_NORM_DEGREE. - A normalização L2 é o padrão em cargas de trabalho de embedding denso.
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