首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将scipy结果转换为字典的通用方法

将scipy结果转换为字典的通用方法
EN

Stack Overflow用户
提问于 2020-09-09 01:09:13
回答 2查看 44关注 0票数 1

为了将DescribeResult(nobs=10,minmax=(0,9),mean=4.5,variance=9.166666666666666,skewness=0.0,kurtosis=-1.2242424242424244)转换为dictionary,以便可以持久化为MongoDB,我计划使用以下命令进行转换:

代码语言:javascript
复制
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)

打印的内容:

代码语言:javascript
复制
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)返回错误:

代码语言:javascript
复制
TypeError: cannot convert dictionary update sequence element #0 to a sequence
EN

回答 2

Stack Overflow用户

发布于 2020-09-09 02:11:20

要从两个列表中创建一个字典,请对它们进行zip

代码语言:javascript
复制
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}
票数 1
EN

Stack Overflow用户

发布于 2020-09-09 01:28:17

尝试使用for循环-

代码语言:javascript
复制
Keys = ['nobs', 'minmax', 'mean', 'variance', 'skewness', 
'kurtosis']
count = 0
#
for key in Keys:
    stats_dict[key] = stats_result[count]
    count += 1
print(stats_dict)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63798567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档