2013-08-06 202 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)]