我遇到以下任务的一些问题:
我有一份清单清单。
我将“weighted_prob”称为列表列表,其中“weighted_prob”的每个元素称为“weighted_variable”。
weighted_prob中有32个元素,每个元素都是100个浮点数的列表。
这就是它的样子:
for i in arange(0,2):
print weighted_prob[i]
outcome:
[ 1.56147373e-02 2.04783441e-03 2.60245622e-03 2.34647692e-03
1.96250797e-03 2.60245622e-03 1.45054937e-03 1.74919189e-03
2.00517119e-03 2.04783441e-03 1.62120224e-03 1.87718154e-03
1.96250797e-03 2.34647692e-03 2.00517119e-03 1.57853902e-03
1.74919189e-03 2.21848727e-03 1.53587580e-03 1.36522294e-03
1.19457007e-03 1.32255972e-03 1.10924364e-03 9.38590770e-04
7.25274686e-04 8.95927553e-04 6.39948252e-04 9.81253986e-04
8.53264336e-04 3.41305734e-04 5.97285035e-04 5.11958602e-04
6.39948252e-04 5.11958602e-04 4.69295385e-04 2.98642518e-04
2.13316084e-04 2.13316084e-04 3.41305734e-04 3.83968951e-04
2.98642518e-04 1.70652867e-04 2.98642518e-04 1.27989650e-04
1.70652867e-04 1.27989650e-04 2.55979301e-04 1.27989650e-04
8.53264336e-05 1.27989650e-04 4.26632168e-05 1.27989650e-04
4.26632168e-05 4.26632168e-05 0.00000000e+00 0.00000000e+00
1.27989650e-04 0.00000000e+00 0.00000000e+00 0.00000000e+00
4.26632168e-05 0.00000000e+00 4.26632168e-05 0.00000000e+00
0.00000000e+00 0.00000000e+00 4.26632168e-05 4.26632168e-05
0.00000000e+00 4.26632168e-05 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00]
[ 1.53587591e-02 1.87718167e-03 2.17582421e-03 2.13316099e-03
2.77310929e-03 2.47446675e-03 2.34647709e-03 2.00517133e-03
1.96250811e-03 2.17582421e-03 2.73044607e-03 2.68778285e-03
1.74919201e-03 2.34647709e-03 2.85843573e-03 1.91984489e-03
2.38914031e-03 2.64511963e-03 1.79185523e-03 1.91984489e-03
1.74919201e-03 1.32255981e-03 1.66386557e-03 1.57853913e-03
8.10601177e-04 1.27989659e-03 8.95927616e-04 8.95927616e-04
8.53264397e-04 8.53264397e-04 5.97285078e-04 6.39948297e-04
6.39948297e-04 6.39948297e-04 5.97285078e-04 4.26632198e-04
5.54621858e-04 3.83968978e-04 3.41305759e-04 1.70652879e-04
4.26632198e-04 1.70652879e-04 2.55979319e-04 5.11958638e-04
2.98642539e-04 8.53264397e-05 2.55979319e-04 8.53264397e-05
1.70652879e-04 0.00000000e+00 4.26632198e-05 8.53264397e-05
4.26632198e-05 1.27989659e-04 4.26632198e-05 4.26632198e-05
4.26632198e-05 8.53264397e-05 8.53264397e-05 4.26632198e-05
4.26632198e-05 4.26632198e-05 4.26632198e-05 0.00000000e+00
4.26632198e-05 4.26632198e-05 4.26632198e-05 0.00000000e+00
0.00000000e+00 4.26632198e-05 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00]
我想把每个weighted_variable的所有第i个元素加起来。
换句话说,我想说,在weighted_prob中每个列表的第0个元素(因此获得32个变量),得到变量之和,将此总和存储在数组中。对于所有32个“weighted_variables”,这必须应用于每个weighted_variable的所有100个元素。
这是我的尝试:
add_prob = []
for weighted_variable in weighted_prob:
for i in range(len(weighted_variable)-1):
sum_per_bin = []
sum_per_bin.append(partitioning[i])
dummy = sum(sum_per_bin)
add_prob.append(dummy)
但命令
print add_prob
给出了32个零的列表,我很肯定这是错误的。
有人可以帮帮我吗?例如,也许有一种更好的方法可以做到这一点,没有嵌套的for循环?
非常感谢
布莱斯
答案 0 :(得分:2)
你在使用Numpy吗?
如果你是,我想你只想要np.sum(weighted_prob, axis=0)
答案 1 :(得分:1)
sum_per_bin = []
嵌套中的此语句每次都为变量分配一个新列表。所以你的假人只会是最后一个项目。
获得你想要的东西:
[sum(x) for x in zip(*weighted_prob)]