次の方法で共有


series_dot_product()

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft Sentinel

2 つの数値系列のドット積を計算します。

関数 series_dot_product() は、入力として 2 つの数値系列を受け取り、その dot 積を計算します。

構文

series_dot_product(series1, series2)

代替構文

series_dot_product(series, numeric)

series_dot_product(numeric, series)

Note

代替構文は、2 つの関数引数の 1 つが数値スカラーである可能性があることを示しています。

この数値スカラーは、対応する数値系列の長さと等しい長さのベクトルにブロードキャストされます。

たとえば、 series_dot_product([1, 2, 3], 10)series_dot_product([1, 2, 3], [10, 10, 10])として扱われます。

構文規則について詳しく知る。

パラメーター

件名 タイプ Required 説明
series1、series2 dynamic ✔️ 数値データを含む配列を入力し、要素ごとの乗算を行い、 real型の値に合計します。

返品

series2 の対応する要素を使用してseries1 の各要素の積を合計した値を持つreal型の値を返します。 両方の系列の長さが等しくない場合、長い系列は短い系列の長さに切り捨てられます。 入力系列の数値以外の要素は無視されます。

Note

一方または両方の入力配列が空の場合、結果は nullされます。

パフォーマンスの最適化

この関数を使用する場合のパフォーマンスの向上とストレージ要件の削減のために、ML ベクター埋め込みなど、64 ビットの精度を必要としない浮動小数点ベクトルを格納するには、 Vector16 エンコード ポリシーの使用を検討してください。 Bfloat16浮動小数点表現を利用するVector16 プロファイルは、操作を大幅に最適化し、ストレージ サイズを 4 倍に減らすことができます。 Vector16 エンコード ポリシーの詳細については、「Encoding ポリシーの種類」を参照してください。

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