Partilhar via


series_dot_product()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Calcula o produto escalar de duas séries numéricas.

A função series_dot_product() recebe duas séries numéricas como entrada e calcula seu produto escalar.

Sintaxe

series_dot_product(Série 1, Série 2)

Sintaxe alternativa

series_dot_product(série, numérica)

series_dot_product(Série numérica, )

Observação

A sintaxe alternativa mostra que um dos dois argumentos de função pode ser um escalar numérico.

Este escalar numérico será transmitido para um vetor cujo comprimento é igual ao comprimento da série numérica correspondente.

Por exemplo, series_dot_product([1, 2, 3], 10) será tratado como series_dot_product([1, 2, 3], [10, 10, 10]).

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
Série 1, Série 2 dynamic ✔️ Matrizes de entrada com dados numéricos, a serem multiplicados por elemento e, em seguida, somados em um valor do tipo real.

Devoluções

Retorna um valor do tipo real cujo valor é a soma sobre o produto de cada elemento de série1 com o elemento correspondente de série2. Caso o comprimento de ambas as séries não seja igual, a série mais longa será truncada para o comprimento da mais curta. Qualquer elemento não numérico da série de entrada será ignorado.

Observação

Se uma ou ambas as matrizes de entrada estiverem vazias, o resultado será null.

Otimizando o desempenho

Para obter desempenho aprimorado e requisitos de armazenamento reduzidos ao usar essa função, considere usar a Vector16 política de codificação para armazenar vetores de ponto flutuante que não exigem precisão de 64 bits, como inserções de vetor de ML. O Vector16 perfil, que utiliza a representação de ponto flutuante Bfloat16 , pode otimizar significativamente a operação e reduzir o tamanho do armazenamento por um fator de 4. Para obter mais detalhes sobre a Vector16 política de codificação, consulte os Tipos de política de codificação.

Exemplo

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