Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:
Databricks Runtime 18.1 и выше
Нормализует вектор на длину единицы, используя указанную норму.
Синтаксис
vector_normalize(vector [, degree ])
Аргументы
-
vector:
ARRAY<FLOAT>выражение, представляющее вектор. -
degree: Необязательный.
FLOATЗначение, указывающее тип нормы; по умолчанию — 2,0 (Евклидеан норма). Поддерживаемые значения:- 1.0 — норма L1: абсолютные значения компонентов суммы до 1
- 2.0 — норма L2: Евклидеан длина равна 1
-
float('inf')— L∞ норме: максимальный абсолютный компонент равен 1
Возвраты
Представляет ARRAY<FLOAT> нормализованный вектор с тем же направлением, что и входные данные, но с нормой 1,0 под указанной степенью.
Возвращает пустой массив для пустых векторов. Возвращает значение NULL , если вектор имеет нулевую норму (например, все нули) или если входные данные или NULL содержатся NULL.
Примечания
- Поддерживается только
ARRAY<FLOAT>другие типы, напримерARRAY<DOUBLE>илиARRAY<DECIMAL>возникают ошибки. Неподдерживаемоеdegreeзначение вызывает INVALID_VECTOR_NORM_DEGREE. - Нормализация L2 — это стандарт в плотных рабочих нагрузках внедрения.
Условия ошибок
Примеры
-- 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