Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks Runtime 18.1 y versiones posteriores
Normaliza un vector a longitud unitaria utilizando el grado de norma especificado.
Sintaxis
vector_normalize(vector [, degree ])
Argumentos
-
vector: expresión
ARRAY<FLOAT>que representa el vector. -
degree: Opcional. Valor
FLOATque especifica el tipo de norma; el valor predeterminado es 2.0 (norma euclidiana). Valores compatibles:- 1.0 — Norma L1: valores absolutos de componentes suman 1
- 2.0 — Norma L2: longitud euclidiana es igual a 1
-
float('inf')— Norma L∞: el componente absoluto máximo es igual a 1.
Devoluciones
que ARRAY<FLOAT> representa el vector normalizado con la misma dirección que la entrada, pero con la norma 1.0 bajo el grado especificado.
Devuelve una matriz vacía para vectores vacíos. Devuelve NULL si el vector tiene cero norma (por ejemplo, todos los ceros) o si la entrada es NULL o contiene NULL.
Notas
- Solo
ARRAY<FLOAT>se admite; otros tipos comoARRAY<DOUBLE>oARRAY<DECIMAL>generan un error. Un valor no admitidodegreegenera INVALID_VECTOR_NORM_DEGREE. - La normalización L2 es el estándar en cargas de trabajo de inserción densas.
Condiciones del error
Ejemplos
-- 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