擅长:python、mysql、java
<p>您可以按照以下思路构建数据结构:</p>
<pre><code>from collections import defaultdict
d = defaultdict(lambda: defaultdict(lambda: [0, 0]))
for *values, key in matrix:
for i, v in enumerate(values):
d[key][i][v] += 1
</code></pre>
<p>然后计算条件概率,如下所示:</p>
<pre><code>def prob(k, i):
false, true = d[k][i] # counts of vals 0/1 in col i for class k
return true / (true + false)
>>> prob(5, 3) # for class 5, column 3 is this likely to be 1
0.0
>>> prob(5, 4)
1.0
</code></pre>