Bagikan melalui


fungsi vector_norm

Berlaku untuk:check ditandai ya Databricks Runtime 18.1 ke atas

Menghitung norma Lp dari vektor menggunakan derajat yang ditentukan.

Sintaksis

vector_norm(vector [, degree ])

Argumen

  • vektor: Ekspresi ARRAY<FLOAT> yang mewakili vektor.
  • derajat: Opsional. FLOAT Nilai yang menentukan jenis norma; default ke 2.0 (norma Euclidean). Nilai yang didukung:
    • 1.0 — Norma L1 (Manhattan): jumlah nilai absolut
    • 2.0 — Norma L2 (Euclidean): akar kuadrat dari jumlah kuadrat
    • float('inf') — L∞ (norma tak terbatas): nilai absolut maksimum

Pengembalian Barang

Nilai FLOAT yang mewakili norma vektor. Hasilnya tidak negatif.

Mengembalikan 0,0 untuk vektor kosong. Mengembalikan NULL jika input adalah NULL atau berisi NULL.

Catatan

  • Hanya ARRAY<FLOAT> didukung; jenis lain seperti ARRAY<DOUBLE> atau ARRAY<DECIMAL> menimbulkan kesalahan. Nilai yang tidak didukung degree menimbulkan INVALID_VECTOR_NORM_DEGREE.
  • Norma L2 adalah yang paling umum dalam beban kerja penyematan padat; L1 digunakan dalam aplikasi yang jarang dan probabilistik; L∞ digunakan dalam analisis terburuk.

Kondisi kesalahan

Examples

-- 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