Dela via


series_dot_product()

Beräknar punktprodukten i två numeriska serier.

Funktionen series_dot_product() tar två numeriska serier som indata och beräknar punktprodukten.

Syntax

series_dot_product(series1,serie2)

Alternativ syntax

series_dot_product(Serien, Numeriska)

series_dot_product(Numeriska, Serien)

Anteckning

Den alternativa syntaxen visar att ett av de två funktionsargumenten kan vara ett numeriskt skalärt.

Den här numeriska skalären sänds till en vektor vars längd är lika med längden på motsvarande numeriska serie.

Behandlas till exempel series_dot_product([1, 2, 3], 10) som series_dot_product([1, 2, 3], [10, 10, 10]).

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
series1, series2 dynamic ✔️ Indatamatriser med numeriska data, som ska multipliceras med element och sedan summeras till ett värde av typen real.

Returer

Returnerar ett värde av typen real vars värde är summan över produkten för varje element i series1 med motsvarande element i series2. Om båda seriernas längd inte är lika, trunkeras den längre serien till längden på den kortare. Alla icke-numeriska element i indataserien ignoreras.

Anteckning

Om en eller båda indatamatriserna är tomma blir nullresultatet .

Optimera prestanda

För bättre prestanda och minskade lagringskrav när du använder den här funktionen bör du överväga att använda Vector16 kodningsprincipen för lagring av flyttalsvektorer som inte kräver 64-bitars precision, till exempel ML-vektorinbäddningar. Profilen Vector16 , som använder flyttalsrepresentationen Bfloat16 , kan avsevärt optimera åtgärden och minska lagringsstorleken med en faktor 4. Mer information om Vector16 kodningsprincipen finns i Kodningsprinciptyper.

Exempel

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