vector_normalize függvény

A következőre vonatkozik: yes Databricks Runtime 18.1 vagy újabb jelöléssel

Normalizál egy vektort egységhosszra a megadott normafok szerint.

Szemantika

vector_normalize(vector [, degree ])

Arguments

  • vektor: A ARRAY<FLOAT> vektort jelképező kifejezés.
  • fok: Nem kötelező. A FLOAT normatípust meghatározó érték; alapértelmezés szerint 2,0 (euklideszi norma). Támogatott értékek:
    • 1.0 – L1 norma: az összetevők abszolút értékei összege 1
    • 2.0 – L2 norma: Az euklideszi hosszúság 1
    • float('inf') — L∞ norma: a maximális abszolút összetevő értéke 1

Visszatérítések

A ARRAY<FLOAT> normalizált vektort a bemenet irányával megegyező irányban, de az 1.0-s normával jelöli a megadott fok alatt.

Üres tömböt ad vissza üres vektorokhoz. Akkor adja NULL vissza, ha a vektor nulla normát tartalmaz (például az összes nullát), vagy ha a bemenet vagy NULL tartalmazza NULL.

Jegyzetek

  • Csak ARRAY<FLOAT> a támogatott; más típusok, például ARRAY<DOUBLE>ARRAY<DECIMAL> a hiba felmerülése. A nem támogatott degree értékek INVALID_VECTOR_NORM_DEGREE.
  • Az L2 normalizálás a sűrű beágyazási számítási feladatok szabványa.

Hibafeltételek

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