Python Forum

Full Version: All possible combinations of multiplications
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I need all possible combinations of multiplications.
If I do this manually, it is giving a decimal number, but in this loop all values are coming out to be 0. Please let me know where is it going wrong.

import numpy as np
import pandas as pd
q= {0: 0.52, 1: 0, 2: 0.46, 3: 0.02}
df6= {0: (pd.DataFrame(np.array([[ 0.77 , 0 , 0.04 , 0.12],
[0.00,  0,  0.00,  0.00],
[0.26,  0  ,0.35  ,0.30], 
[0.00 , 0,  0.00 , 1.00]]), index= [0,1,2,3],columns= [0,1,2,3])),
1: (pd.DataFrame(np.array([ [ 0.92,  0.08  ,0.0  ,0.00],
  [0.00 , 0.75 , 0.0 , 0.25],
  [0.67  ,0.33,  0.0  ,0.00],
  [0.18,  0.82  ,0.0 , 0.00]]),index= [0,1,2,3],columns= [0,1,2,3])),
2:  (pd.DataFrame(np.array([[  0.59 , 0.0  ,0 , 0.03],
  [0.00  ,0.0 , 0  ,0.76],
  [0.00,  0.0,  0 , 0.00],
  [0.00 , 1.0  ,0,  0.00]]),index= [0,1,2,3],columns= [0,1,2,3])), 
3:(pd.DataFrame(np.array([[ 0.32  ,0.68 , 0.0,  0.00],
  [0.00,  1.00,  0.0 , 0.00],
  [0.56 , 0.44  ,0.0  ,0.00],
  [0.07  ,0.79 , 0.0  ,0.14]]),index= [0,1,2,3],columns= [0,1,2,3])), 
4:(pd.DataFrame(np.array( [[0.12,  0.25,  0,  0.38],
  [0.09 , 0.28  ,0 , 0.44],
  [0.00  ,0.00 , 0  ,0.00],
  [0.00,  0.50,  0  ,0.50]]),index= [0,1,2,3],columns= [0,1,2,3]))}
from collections import Counter
t={}
high={}
for qq in range(4096):
    for i in range(4):
        for j in range(4):
            for k in range(4):
                for l in range(4):
                    for m in range(4):
                        for n in range(4):
                            t[qq]=q[i]*df6[0].loc[i,j]*df6[1].loc[j,k]*df6[2].loc[k,l]*df6[3].loc[l,m]*df6[4].loc[m,n]
k = Counter(t) 
high = k.most_common(5) 
print(high)