下面举一个例子,用代码节点,使用NumPy包对输入的数组中的数据进行描述性统计。新建一个工作流,添加一个代码节点。将各节点如图5-3进行连接。
\[\]
图5-3 新建工作流
单击“开始”节点,指定输入变量input,变量类型为包含Number的数组。单击“代码”节点,用IDE输入下面的Python代码。指定输出变量stats,字符串数据类型。需要计算的描述性统计量如代码中所示。
code.python
async def main(args: Args) -> Output:
import numpy as np
import json
data0 = args.params['input']
data_list = json.loads(data0) # 解析为列表
data = np.array(list(map(float, data_list)))
# 基础统计量
stats = {
"均值": np.mean(data), # 算术平均值
"中位数": np.median(data), # 中间值
"标准差": np.std(data), # 数据离散程度
"方差": np.var(data), # 标准差的平方
"最小值": np.min(data), # 数组最小值
"最大值": np.max(data), # 数组最大值
"极差": np.ptp(data), # 最大值-最小值
"四分位数": [
np.percentile(data, 25), # 第一四分位数(Q1)
np.percentile(data, 75) # 第三四分位数(Q3)
],
"总和": np.sum(data) # 所有元素求和
}
return str(stats)
单击“结束”节点,指定输出变量的名称为“output”,值为代码节点的输出stats。
试运行代码,输入下面的数组。
code.python
[3.14,4,11,20,18]
继续运行后得到下面的字符串。
code.python
{
"output": "{'均值': 11.228, '中位数': 11.0, '标准差': 6.9357001088570716, '方差': 48.103936, '最小值': 3.14, '最大值': 20.0, '极差': 16.86, '四分位数': [4.0, 18.0], '总和': 56.14}"
}
得到了各描述性统计量的计算值。