What use of 'sum' in this line code?

Robert rxjwg98 at gmail.com
Sun Jan 3 21:44:03 EST 2016


On Sunday, January 3, 2016 at 7:54:13 PM UTC-5, Peter Otten wrote:
> Robert wrote:
> 
> > Hi,
> > 
> > I find below code snippet on line:
> > 
> > 
> > //////////
> > m = 10
> > theta_A = 0.8
> > theta_B = 0.3
> > theta_0 = [theta_A, theta_B]
> > 
> > coin_A = bernoulli(theta_A)
> > coin_B = bernoulli(theta_B)
> > 
> > xs = map(sum, [coin_A.rvs(m), coin_A.rvs(m), coin_B.rvs(m), coin_A.rvs(m),
> > coin_B.rvs(m)]) /////////
> > 
> > I see
> > [coin_A.rvs(m), coin_A.rvs(m), coin_B.rvs(m), coin_A.rvs(m),
> > [coin_B.rvs(m)]
> > 
> > is simply a list, but I don't know what use of 'sum' in this line.
> > I replace the random number with a simple list:
> > ///////
> > yy=map(sum, [13, 22, 33, 41])
> > 
> > In [24]: yy
> > Out[24]: [13, 22, 33, 41]
> > ///////
> > 
> > I don't see 'sum' has any effect above.
> > The code source is from:
> > #http://people.duke.edu/~ccc14/sta-663/EMAlgorithm.html
> > 
> > 
> > What could you help me on the 'sum'?
> 
> >>> import numpy
> >>> values = [13, 22, 33, 41]
> >>> map(numpy.sum, values)
> [13, 22, 33, 41]
> >>> values2 = [[1, 2], [3, 4]]
> >>> map(numpy.sum, values2)
> [3, 7]
> 
> In Python 2 map(sum, values) applies sum to every value in the list and 
> returns the resulting list of sums. Apparently the numpy developers found it 
> convenient that sum(scalar) == scalar holds.

Thanks, all you say are correct in one way or the other. I just notice that
it uses coin_A.rvs(m) (m=10). Thus, it sums 10 random numbers.



More information about the Python-list mailing list