Joe Mosby's blog

Exploring the math module

I could write code for days using the math module and never hit the end. math is huge. It's designed to keep you from rewriting a stack of mathematical functions that someone had inevitably written before (formulas for calculating the sine, cosine, tangent, etc).

So rather than write a stack of example code, let's instead discuss what math can do for you. math can do any of these functions on integers only - cmath provides the same, but allows complex numbers.

Number-theoretic and representation functions

These functions deal with a few basic theoretical calculations that didn't quite fit anywhere else. Things like factorial(), fabs() (which calculates absolute value), and modf() which returns the fractional and integer parts of a float can all be found here.

Power and logarithmic functions

As can be expected, you'll find things with exponents and logarithms here. Need to calculate e^x? Use exp(x). Need to get x^y? Use pow(x, y). Logarithms use log(x, [base]). Easy stuff here.

Trigonometric functions

This is where all of the trigonometric functions live: things like sin(x), cos(x), tan(x). I wish I'd known about this in the eleventh grade with Mrs. May.

Angular conversion functions

Need to go from degrees to radians? Use radians(x). Need to go from radians to degrees? Use degrees(x).

Hyperbolic functions

I never used these in eleventh grade and am only moderately aware of what they do. If you need the hyperbolic tangent of x - tanh(x) - or the inverse hyperbolic cosine - acosh(x) - this is where to look.

Error functions

Same thing for error functions. I am not proud of how much math I don't know right now.


These I've got, though! This is where pi and e live.

math is great, and if you're going to using Python for statistical or scientific computing, it's a must-know.