Sdílet prostřednictvím


series_dot_product()

Vypočítá tečkovaný součin dvou číselných řad.

Funkce series_dot_product() přijímá jako vstup dvě číselné řady a vypočítá jejich tečkovaný součin.

Syntax

series_dot_product(řada 1,řada 2)

Alternativní syntaxe

series_dot_product(Série, Číselné)

series_dot_product(Číselné, Série)

Poznámka

Alternativní syntaxe ukazuje, že jedním ze dvou argumentů funkce může být číselný skalární.

Tento číselný skalární skalár bude vysílán do vektoru, jehož délka se rovná délce odpovídající číselné řady.

Bude se například series_dot_product([1, 2, 3], 10) považovat za series_dot_product([1, 2, 3], [10, 10, 10]).

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Typ Vyžadováno Popis
řada1, řada2 dynamic ✔️ Vstupní pole s číselnými daty, která se mají vynásobit a pak sečíst do hodnoty typu real.

Návraty

Vrátí hodnotu typu real , jejíž hodnota je součtem nad součinem každého prvku řady 1 s odpovídajícím prvkem řady 2. V případě, že délka obou řad není stejná, bude delší řada zkrácena na délku kratší řady. Všechny nečíselné prvky vstupní řady budou ignorovány.

Poznámka

Pokud jsou jedno nebo obě vstupní pole prázdná, výsledek bude null.

Optimalizace výkonu

Pokud chcete zvýšit výkon a snížit požadavky na úložiště při použití této funkce, zvažte použití Vector16 zásad kódování pro ukládání vektorů s plovoucí desetinou čárkou, které nevyžadují přesnost 64 bitů, jako jsou vkládání vektorů ML. Profil Vector16 , který využívá reprezentaci Bfloat16 s plovoucí desetinnou čárkou, může výrazně optimalizovat operaci a zmenšit velikost úložiště faktorem 4. Další podrobnosti o zásadách Vector16 kódování najdete v tématu Typy zásad kódování.

Příklad

range x from 1 to 3 step 1 
| extend y = x * 2
| extend z = y * 2
| project s1 = pack_array(x,y,z), s2 = pack_array(z, y, x)
| extend s1_dot_product_s2 = series_dot_product(s1, s2)
s1 s2 s1_dot_product_s2
[1,2,4] [4,2,1] 12
[2,4,8] [8,4,2] 48
[3,6,12] [12,6,3] 108
range x from 1 to 3 step 1 
| extend y = x * 2
| extend z = y * 2
| project s1 = pack_array(x,y,z), s2 = x
| extend s1_dot_product_s2 = series_dot_product(s1, s2)
s1 s2 s1_dot_product_s2
[1,2,4] 1 7
[2,4,8] 2 28
[3,6,12] 3 63