Поделиться через


vector_norm функция

Область применения:check помечена да Databricks Runtime 18.1 и выше

Вычисляет норму Lp вектора с помощью указанной степени.

Синтаксис

vector_norm(vector [, degree ])

Аргументы

  • vector: ARRAY<FLOAT> выражение, представляющее вектор.
  • degree: Необязательный. FLOAT Значение, указывающее тип нормы; по умолчанию — 2,0 (Евклидеан норма). Поддерживаемые значения:
    • 1.0 — норма L1 (Манхэттен): сумма абсолютных значений
    • 2.0 — норма L2 (Евклидан): квадратный корень суммы квадратов
    • float('inf') — L∞ (норма бесконечности): максимальное абсолютное значение

Возвраты

FLOAT Значение, представляющее норму вектора. Результат не является отрицательным.

Возвращает значение 0.0 для пустых векторов. Возвращает значение NULL , если входные данные или NULL содержатся NULL.

Примечания

  • Поддерживается только ARRAY<FLOAT> другие типы, например ARRAY<DOUBLE> или ARRAY<DECIMAL> возникают ошибки. Неподдерживаемое degree значение вызывает INVALID_VECTOR_NORM_DEGREE.
  • Норма L2 является наиболее распространенной в плотных рабочих нагрузках внедрения; L1 используется в разреженных и вероятностных приложениях; L∞ используется в худшем случае анализа.

Условия ошибок

Примеры

-- L2 norm (Euclidean) - classic 3-4-5 triangle
> SELECT vector_norm(array(3.0f, 4.0f), 2.0f);
  5.0

-- L1 norm (Manhattan)
> SELECT vector_norm(array(3.0f, 4.0f), 1.0f);
  7.0

-- L∞ norm (infinity)
> SELECT vector_norm(array(3.0f, 4.0f), float('inf'));
  4.0

-- Empty vector returns 0.0
> SELECT vector_norm(array(), 2.0);
  0.0