Partager via


series_dot_product()

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Calcule le produit par points de deux séries numériques.

La fonction series_dot_product() prend deux séries numériques comme entrée et calcule leur produit point.

Syntaxe

series_dot_product(série1, série2)

Autre syntaxe

series_dot_product(série, numérique)

series_dot_product(série numérique, )

Remarque

La syntaxe alternative montre qu’un des deux arguments de fonction peut être un scalaire numérique.

Ce scalaire numérique sera diffusé sur un vecteur dont la longueur est égale à la longueur de la série numérique correspondante.

Par exemple, series_dot_product([1, 2, 3], 10) sera traité comme series_dot_product([1, 2, 3], [10, 10, 10]).

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
série1, série2 dynamic ✔️ Tableaux d’entrée avec des données numériques, multipliés par des éléments, puis additionnés en valeur de type real.

Retours

Retourne une valeur de type real dont la valeur est la somme sur le produit de chaque élément de la série1 avec l’élément correspondant de la série2. Dans le cas où la longueur des deux séries n’est pas égale, la plus longue est tronquée à la longueur du plus court. Tout élément non numérique de la série d’entrée est ignoré.

Remarque

Si un ou les deux tableaux d’entrée sont vides, le résultat est null.

Optimisation des performances

Pour améliorer les performances et réduire les exigences de stockage lors de l’utilisation de cette fonction, envisagez d’utiliser la Vector16 stratégie d’encodage pour stocker des vecteurs à virgule flottante qui ne nécessitent pas de précision de 64 bits, comme les incorporations de vecteurs ML. Le Vector16 profil, qui utilise la représentation à virgule flottante Bfloat16 , peut optimiser considérablement l’opération et réduire la taille de stockage d’un facteur de 4. Pour plus d’informations sur la stratégie d’encodage Vector16 , reportez-vous aux types de stratégie d’encodage.

Exemple

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