python - 将 scipy 结果转换为字典的通用方法
问题描述
要将 DescribeResult(nobs=10, minmax=(0, 9), mean=4.5, variance=9.166666666666666, skewness=0.0, kurtosis=-1.2242424242424244) 转换为 adictionary
以便可以持久保存到 MongoDB,我计划使用以下方法进行转换:
from scipy import stats
a = np.arange(10)
stats_result = stats.describe(a)
print(stats_result)
stats_dict = {}
stats_dict['nobs'] = stats_result[0]
stats_dict['minmax'] = stats_result[1]
stats_dict['mean'] = stats_result[2]
stats_dict['variance'] = stats_result[3]
stats_dict['skewness'] = stats_result[4]
stats_dict['kurtosis'] = stats_result[5]
print(stats_dict)
打印:
DescribeResult(nobs=10, minmax=(0, 9), mean=4.5, variance=9.166666666666666, skewness=0.0, kurtosis=-1.2242424242424244)
{'nobs': 10, 'minmax': (0, 9), 'mean': 4.5, 'variance': 9.166666666666666, 'skewness': 0.0, 'kurtosis': -1.2242424242424244}
是否有一种更简洁、更惯用的方法将结果转换为字典,而不是根据值索引位置将每个值显式分配给字典?
dict(stats_result)
返回错误:
TypeError: cannot convert dictionary update sequence element #0 to a sequence
解决方案
要从 2 个列表中创建一个 dict,zip
它们:
In [3]: dict(zip(['a','b','c'],[1,2,3]))
Out[3]: {'a': 1, 'b': 2, 'c': 3}
In [4]: {k:v for k,v in zip(['a','b','c'],[1,2,3])}
Out[4]: {'a': 1, 'b': 2, 'c': 3}
推荐阅读
- java - 奇怪的杰克逊 ObjectMapper 行为
- php - 为什么我的 PHP 邮件脚本给了我成功的响应,但没有发送电子邮件?
- powershell - 尝试使用 powershell 访问共享点在线列表 REST API 时出错
- javascript - 带有反应和节点的嵌套表单
- python - 如何使用numpy获得线性方程组解的整数部分?
- amazon-ecs - 如何在 AWS ECS 容量提供程序中计算目标容量百分比
- intellij-idea - Intellij Rust 插件不正确的“未解决的参考”错误
- arrays - PostgreSQL:比较两个数组是否存在第二个数组中的任何一个值
- javascript - 将json字符串化为多个数组的逻辑
- ebay-api - eBay oauth 令牌(和刷新令牌)有多长?