你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
该函数 entropy_fl() 是 一个用户定义的函数(UDF), 用于计算多个概率向量的 Shannon Entropy 。
Syntax
T | invoke entropy_fl(
val_col)
详细了解语法约定。
参数
| Name | 类型 | 必选 | Description |
|---|---|---|---|
| val_col | string |
✔️ | 包含概率向量的列的名称。 |
函数定义
可以通过将函数代码嵌入为查询定义的函数,或将其创建为数据库中的存储函数来定义函数,如下所示:
使用以下 let 语句定义函数。 不需要任何权限。
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 |