On Sun, 20 Apr 2014 14:40:38 -0700, Roy Smith wrote: > In article <mailman.9383.1398012417.18130.python-l...@python.org>, > Chris Angelico <ros...@gmail.com> wrote: > >> On Mon, Apr 21, 2014 at 2:22 AM, Ian Kelly <ian.g.ke...@gmail.com> >> wrote: >> > When I'm writing a generic average function, I probably don't know >> > whether it will ever be used to average complex numbers. >> >> This keeps coming up in these discussions. How often do you really >> write a function that generic? And if you do, isn't it doing something >> so simple that it's then the caller's responsibility (not the >> function's, and not the language's) to ensure that it gets the right >> result? >> >> ChrisA > > Hmmm. Taking the average of a set of complex numbers has a reasonable > physical meaning. But, once you start down that path, I'm not sure how > far you can go before things no long make sense. What's the standard > deviation of a set of complex numbers? Does that even have any meaning?
Yes it does. Stdev is a measure of scale of the distribution, and is always real and non-negative. For complex values, you can calculate it using: (abs(x - mean))**2 which is how numpy does it, or from the complex conjugate: x1 = x-mean x1.conj()*x1 which is how Matlab does it. http://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html http://www.mathworks.com.au/matlabcentral/newsreader/view_thread/57323 Hence the variance is always non-negative, and the standard deviation is always real. See also: https://en.wikipedia.org/wiki/Variance#Generalizations -- Steven D'Aprano http://import-that.dreamwidth.org/ -- https://mail.python.org/mailman/listinfo/python-list