Aracılığıyla paylaş


vector_normalize fonksiyon

Şunun için geçerlidir:evet olarak işaretlendi Databricks Runtime 18.1 ve üzerini denetleyin

Belirtilen norm derecesini kullanarak vektörleri birim uzunluğuna normalleştirir.

Sözdizimi

vector_normalize(vector [, degree ])

Argümanlar

  • vector: Vektöri ARRAY<FLOAT> temsil eden bir ifade.
  • derece: İsteğe bağlı. FLOAT Norm türünü belirten bir değer; varsayılan olarak 2,0 (Öklid normu) olur. Desteklenen değerler:
    • 1.0 — L1 normu: bileşenlerin mutlak değerleri 1'e toplam
    • 2.0 — L2 normu: Öklid uzunluğu 1'e eşittir
    • float('inf') — L∞ norm: maksimum mutlak bileşen 1'e eşittir

İadeler

ARRAY<FLOAT> Girişle aynı yönde, ancak belirtilen derecenin altında norm 1.0 ile normalleştirilmiş vektöri temsil eden.

Boş vektörler için boş bir dizi döndürür. Vektörde sıfır normu varsa (tüm sıfırlar gibi) veya giriş ise NULL veya içeriyorsa NULLdöndürürNULL.

Notlar

  • Yalnızca ARRAY<FLOAT> desteklenir; veya gibi ARRAY<DOUBLE>ARRAY<DECIMAL> diğer türler hata oluşturur. Desteklenmeyen degree bir değer INVALID_VECTOR_NORM_DEGREE yükseltir.
  • L2 normalleştirmesi, yoğun ekleme iş yüklerinde standarttır.

Hata koşulları

Örnekler

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