Scipy Lecture Notes – Learn numerics, science, and data with Python
I hope you don't take this as trolling, but: What's the deal with matrix multiplication in numpy? I wanted to dot-product two vectors yesterday, and I got it right only on the third try:   x.T * y    # nope
   x.dot(y)   # still no
   x.inner(y) # ok

This is a disaster. I'm sure there are valid historical reasons for this state of affairs, but this makes numpy an environment where random idiosyncrasies get cast in concrete.