你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

entropy_fl()

适用于:✅Azure 数据资源管理器Azure Monitor✅ Sentinel

该函数 entropy_fl()一个用户定义的函数(UDF), 用于计算多个概率向量的 Shannon Entropy

Syntax

T | invoke entropy_fl( val_col)

详细了解语法约定

参数

Name 类型 必选 Description
val_col string ✔️ 包含概率向量的列的名称。

函数定义

可以通过将函数代码嵌入为查询定义的函数,或将其创建为数据库中的存储函数来定义函数,如下所示:

使用以下 let 语句定义函数。 不需要任何权限。

重要

let 语句不能自行运行。 它必须后跟 表格表达式语句。 若要运行工作示例 time_weighted_avg_fl(),请参阅 示例

let entropy_fl=(tbl:(*), val_col:string)
{
	tbl
    | extend _vals = column_ifexists(val_col, dynamic(null))
    | mv-apply pa=_vals to typeof(real) on 
    (summarize H=sum(-pa*log2(pa)))
    | project-away _vals
};
// Write your query to use the function here.

Example

以下示例使用 invoke 运算符 运行函数。

若要使用查询定义的函数,请调用嵌入的函数定义之后。

let entropy_fl=(tbl:(*), val_col:string)
{
	tbl
    | extend _vals = column_ifexists(val_col, dynamic(null))
    | mv-apply pa=_vals to typeof(real) on 
    (summarize H=sum(-pa*log2(pa)))
    | project-away _vals
};
let probs = datatable(p:dynamic) [
    dynamic([0.2, 0.4, 0.3, 0.1]),
    dynamic([0.5, 0.5])
];
probs
| invoke entropy_fl('p')

输出

p H
[0.2, 0.4, 0.3, 0.1] 1.84643934467102
[0.5, 0.5] 1