Sdílet prostřednictvím


series_dot_product()

Platí pro: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

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

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

Syntaxe

series_dot_product(series1, series2)

Alternativní syntaxe

series_dot_product(číselná řada, )

series_dot_product(číselná, řada)

Poznámka:

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

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

Bude například series_dot_product([1, 2, 3], 10) považován za series_dot_product([1, 2, 3], [10, 10, 10]).

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

Parametry

Název Type Požadováno Popis
řada1, řada2 dynamic ✔️ Vstupní pole s číselnými daty, která mají být vynásobená podle prvků a následně sečtená do hodnoty typu real.

Návraty

Vrátí hodnotu typureal, jejíž hodnota je součet nad součinem každého prvku řady 1 s odpovídajícím prvkem řady 2. V případě, že se obě řady nerovnají, delší řada se zkrátí na délku kratší řady. Jakýkoli nečíselný prvek vstupní řady bude ignorován.

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í desetinnou čárkou, které nevyžadují přesnost 64 bitů, například vkládání vektorů ML. Profil Vector16 , který využívá reprezentaci plovoucí desetinné čárky Bfloat16 , může výrazně optimalizovat operaci a snížit velikost úložiště faktorem 4. Další podrobnosti o zásadách Vector16 kódování najdete v typech 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