Bagikan melalui


fungsi vector_normalize

Berlaku untuk:check ditandai ya Databricks Runtime 18.1 ke atas

Menormalkan vektor ke panjang unit menggunakan derajat norma yang ditentukan.

Sintaksis

vector_normalize(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: nilai absolut komponen jumlah hingga 1
    • 2.0 — Norma L2: Panjang Euclidean sama dengan 1
    • float('inf') — Lāˆž norma: komponen absolut maksimum sama dengan 1

Pengembalian Barang

Mewakili ARRAY<FLOAT> vektor yang dinormalisasi dengan arah yang sama dengan input tetapi dengan norma 1.0 di bawah derajat yang ditentukan.

Mengembalikan array kosong untuk vektor kosong. Mengembalikan NULL jika vektor memiliki norma nol (misalnya semua nol) atau 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.
  • Normalisasi L2 adalah standar dalam beban kerja penyematan yang padat.

Kondisi kesalahan

Examples

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