如何对含字符串列的二维列表计算指定数字列的标准差
提取二维列表指定列并准备计算标准差
你可以通过转置切片的方式快速拿到目标列,步骤如下:
- 用
zip(*param_data)把原二维列表的行转成列(转置); - 对转置后的结果切片,取索引
1:5(切片左闭右开,刚好覆盖原列表索引1到4的列); - 遍历这些列,就能得到每一列的数值集合,后续直接传入标准差函数即可。
代码示例
param_data = [["a", 2, 3, 6, 7, "b"], ["c", 6, 7, 8, 2, "d"], ["e", 5, 6, 8, 1, "f"]] # 转置后提取目标列(索引1-4) target_cols = list(zip(*param_data))[1:5] # 生成待计算的列集合(替换成实际std.dev调用即可) params = [col for col in target_cols] # 输出结果结构与预期一致 print(params)
运行后params的每个元素就是对应列的数值元组:[(2, 6, 5), (3, 7, 6), (6, 8, 8), (7, 2, 1)],直接把col替换成std.dev(col)就能完成标准差计算。
内容的提问来源于stack exchange,提问作者chepox
相关产品推荐
相关产品推荐

