基于单个字典中的键的值的均值和标准差

Joh*_*ohn 0 python dictionary numpy python-3.x

我有一个下面的字典,其中 N 个键有一些值。

a = {'Test': [5, 6, 4, 1, 1, 8], 'Test1': [1, 2, 3, 1, 1, 4], 'Test2': [4, 6, 8], 'TestN': [1, 10, 12]}
Run Code Online (Sandbox Code Playgroud)

字典中的每个键可能有不同数量的值。

我试图根据键获得这本词典的均值和标准差

当我尝试

vals = [i for i in a.values()]
print(vals)

print(np.mean(vals))
print(np.std(vals))

print(np.array(list(a.values())).mean())
Run Code Online (Sandbox Code Playgroud)

我正在获取所有值的均值和标准差的结果,而与 vals 中的键无关,我正在获取所有值

预期:(演示值)

意思

a = {'Test': 2, 'Test1': 3, 'Test2': 4, 'TestN': 5}
Run Code Online (Sandbox Code Playgroud)

标准解离

a = {'Test': 1.6272, 'Test1': 3.7373, 'Test2': 4.2333, 'TestN': 5.3333}
Run Code Online (Sandbox Code Playgroud)

SM *_*sif 5

你可以遍历字典:

import numpy as np
a = {'Test': [5, 6, 4, 1, 1, 8], 'Test1': [1, 2, 3, 1, 1, 4], 'Test2': [4, 6, 8], 'TestN': [1, 10, 12]}
means = {key:np.mean(value) for key, value in a.items() }
stdv = {key:np.std(value) for key, value in a.items() }
print(means)
print(stdv)
Run Code Online (Sandbox Code Playgroud)

输出:

{'Test': 4.166666666666667, 'Test1': 2.0, 'Test2': 6.0, 'TestN': 7.666666666666667}
{'Test': 2.544056253745625, 'Test1': 1.1547005383792515, 'Test2': 1.632993161855452, 'TestN': 4.784233364802441}
Run Code Online (Sandbox Code Playgroud)