Speed up numpy matrix inverse

I am using Numpy/Scipy to invert a 20k matrix, it's slow. I tried:

(1) M_inv = M.I

(2) Ident = np.Identity(len(M))
    M_inv = scipy.linalg.solve(M, Ident)

(3) M_inv = scipy.linglg.inv(M)

but didn't see any speedup.

Is there any other way to speed this up?

Answers


This is a big matrix, and inverting it is going to be slow. Some options:

  • Use a numpy linked against Intel MKL (e.g. the Enthought distribution, or you can compile it yourself), which should be faster than one linked against standard BLAS/ATLAS.
  • If your matrix is sufficiently sparse, use scipy.linalg.sparse. (This will probably be slower if there are only a few zeros, though.)
  • Figure out if you really need an explicit representation of the inverted matrix to do whatever it is you're trying to do with it – often you can get away without explicitly inverting it, but it's hard to tell without knowing what it is you're doing with this matrix.

Need Your Help

Ajax,NodeJS with Express ,Javascript

javascript ajax node.js express

I am using nodejs ,html,express , node-nosql and JavaScript. I have a problem wherin the html page is given below :

How do I check if a terminal is available through my gnuplot script?

gnuplot

I want to set terminal to pngcairo instead of png whenever the pngcairo terminal is available,