Aracılığıyla paylaş


vector_norm fonksiyon

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

Belirtilen dereceyi kullanarak bir vektörünün Lp normunu hesaplar.

Sözdizimi

vector_norm(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 (Manhattan): mutlak değerlerin toplamı
    • 2.0 — L2 normu (Öklid): karelerin toplamının kare kökü
    • float('inf') — L∞ (sonsuzluk normu): maksimum mutlak değer

İadeler

FLOAT Vektör normunu temsil eden bir değer. Sonuç negatif değil.

Boş vektörler için 0,0 döndürür. Giriş NULL ise 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 normu yoğun ekleme iş yüklerinde en yaygın olanıdır; L1 seyrek ve olasılıksal uygulamalarda kullanılır; L∞ en kötü durum analizinde kullanılır.

Hata koşulları

Örnekler

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