[Numpy-discussion] multinomial question

Alan G Isaac aisaac at american.edu
Wed Dec 5 20:38:23 EST 2007


I would think that
    multinomial(1,prob,size=ntrials).sum(axis=0)
would be equivalent to
    multinomial(ntrials,prob)
but the first gives a surprising result.  (See below.)
Explanation?

Thank you,
Alan Isaac


>>> ntrials = 100000
>>> prob = N.arange(100,dtype=N.float32)/4950
>>> multinomial(1,prob,size=ntrials).sum(axis=0)
array([   0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
          0,    0,    0,    0,    0,    0,    0,    0,  990, 1058,  996,
       1102, 1088, 1137, 1144, 1150, 1196, 1198, 1272, 1273, 1268, 1265,
       1380, 1336, 1371, 1405, 1348, 1420, 1515, 1506, 1571, 1499, 1556,
       1517, 1603, 1691, 1696, 1763, 1622, 1716, 1722, 1785, 1866, 1799,
       1918, 1818, 1868, 1938, 2010, 1916, 1950, 1983, 2062, 2079, 2224,
       2165, 2136, 2156, 2215, 2118, 2309, 2389, 2377, 2423, 2328, 2325,
       2469])
>>> multinomial(ntrials,prob)
array([   0,   27,   33,   55,  104,  104,  116,  153,  166,  181,  189,
        199,  244,  262,  259,  303,  330,  343,  373,  360,  371,  437,
        423,  470,  460,  550,  551,  497,  517,  593,  623,  623,  648,
        660,  638,  718,  713,  754,  784,  831,  804,  868,  902,  851,
        918,  932,  945,  972,  966, 1025, 1005, 1038, 1075, 1046, 1121,
       1069, 1121, 1152, 1209, 1148, 1196, 1261, 1288, 1304, 1250, 1324,
       1348, 1430, 1370, 1419, 1388, 1364, 1473, 1414, 1511, 1523, 1583,
       1574, 1575, 1575, 1613, 1559, 1665, 1666, 1712, 1728, 1715, 1709,
       1846, 1774, 1819, 1869, 1886, 1963, 1837, 1906, 1983, 1867, 1968,
       1916])
>>>






More information about the NumPy-Discussion mailing list