Hi,<br><br>I&#39;d like to hear thoughts on a good representation for discrete probability distributions.&nbsp; Currently, I am using dictionaries as they can be sparse and they give access the probabilities via keys (this is desired).&nbsp; For example,
<br><br>&gt;&gt;&gt; p = {&#39;a&#39;:.3,&#39;c&#39;:.7}<br>&gt;&gt;&gt; print p[&#39;a&#39;]<br><br>This is nice and fine, but I&#39;d like to add more functionality.&nbsp; For example,<br><br>&gt;&gt;&gt; print p[&#39;b&#39;]
<br>0<br>&gt;&gt;&gt; q = scipy.log2(p) <br># or perhaps q = p.aslog2()<br>&gt;&gt;&gt; print q[&#39;b&#39;]<br>-inf<br><br>All this says that I should think about subclassing dict.&nbsp; However, I also want to be able to compute marginal distributions.&nbsp; With a dictionary of dictionaries, p[&#39;a&#39;][&#39;b&#39;], it is not convenient to sum over the second index.&nbsp; With two random variables, I can store two dictionaries to solve this problem...but I need a general solution and N-dimensional scipy arrays seem like a possibility. But alas, they are not sparse...and 
scipy.sparse is only for matrices (?).<br><br>Finally, there is the question of a good representation for conditional probabilities.<br><br>Any thoughts on this would be very helpful.<br>