series_dot_product()

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

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

Syntax

series_dot_product(series1,series2)

Sintaxe alternativa

series_dot_product(Série, Numérico)

series_dot_product(Numérico, Série)

Observação

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

Esse 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 Tipo Obrigatório Descrição
series1, series2 dynamic ✔️ Matrizes de entrada com dados numéricos, para serem multiplicadas em termos de elemento e resumidas em um valor do tipo real.

Retornos

Retorna um valor do tipo real cujo valor é a soma sobre o produto de cada elemento de series1 com o elemento correspondente da série2. Caso o comprimento de ambas as séries não seja igual, a série mais longa será truncada até o comprimento do menor. 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 melhorar o desempenho e reduzir os requisitos de armazenamento 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 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 em 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