Udostępnij za pośrednictwem


series_dot_product()

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Oblicza wartość kropkową dwóch serii liczbowych.

Funkcja series_dot_product() przyjmuje dwie serie liczbowe jako dane wejściowe i oblicza ich produkt kropkowy.

Składnia

series_dot_product(seria1, seria2)

Składnia alternatywna

series_dot_product(numeryczne serie, )

series_dot_product(serie liczbowe, )

Uwaga

Składnia alternatywna pokazuje, że jeden z dwóch argumentów funkcji może być liczbowym skalarnym.

Ten skalar liczbowy będzie emitowany do wektora, którego długość jest równa długości odpowiadającej im serii liczbowej.

Na przykład series_dot_product([1, 2, 3], 10) będzie traktowany jako series_dot_product([1, 2, 3], [10, 10, 10]).

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
seria1, seria2 dynamic ✔️ Tablice wejściowe z danymi liczbowymi, które mają być mnożone przez element, a następnie sumowane w wartość typu real.

Zwraca

Zwraca wartość typureal, którego wartość jest sumą dla każdego elementu serii1 z odpowiednim elementem serii2. W przypadku, gdy długość obu serii nie jest równa, dłuższa seria zostanie obcięta do długości krótszej serii. Wszystkie nieliczbowe elementy serii wejściowej zostaną zignorowane.

Uwaga

Jeśli jedna lub obie tablice wejściowe są puste, wynikiem będzie null.

Optymalizacja wydajności

Aby zwiększyć wydajność i zmniejszyć wymagania dotyczące magazynu podczas korzystania z tej funkcji, rozważ użycie Vector16 zasad kodowania do przechowywania wektorów zmiennoprzecinkowych, które nie wymagają dokładności 64 bitów, takich jak osadzanie wektorów uczenia maszynowego. Vector16 Profil, który wykorzystuje reprezentację zmiennoprzecinkową Bfloat16, może znacząco zoptymalizować operację i zmniejszyć rozmiar magazynu o współczynnik 4. Aby uzyskać więcej informacji na Vector16 temat zasad kodowania, zobacz Typy zasad kodowania.

Przykład

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