2013-08-06 161 views
1

我遇到了以下任务的一些问题:按元素列表列出的元素列表python

我列出了一个列表。

我称之为“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中每个列表的第零个元素(因此获得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循环?

非常感谢

布莱斯

回答

2

是否使用NumPy的?

如果你是,我想你只是想np.sum(weighted_prob, axis=0)

1
sum_per_bin = [] 

本声明嵌套的每一次分配一个新的列表中的变量。所以你的假人只会是最后一个项目。

为了得到你想要的东西:

[sum(x) for x in zip(*weighted_prob)]