pythonalgorithmmatrixlinear-algebramatrix-inverse

Python Inverse of a Matrix


How do I get the inverse of a matrix in python? I've implemented it myself, but it's pure python, and I suspect there are faster modules out there to do it.


Solution

  • You should have a look at numpy if you do matrix manipulation. This is a module mainly written in C, which will be much faster than programming in pure python. Here is an example of how to invert a matrix, and do other matrix manipulation.

    from numpy import matrix
    from numpy import linalg
    A = matrix( [[1,2,3],[11,12,13],[21,22,23]]) # Creates a matrix.
    x = matrix( [[1],[2],[3]] )                  # Creates a matrix (like a column vector).
    y = matrix( [[1,2,3]] )                      # Creates a matrix (like a row vector).
    print A.T                                    # Transpose of A.
    print A*x                                    # Matrix multiplication of A and x.
    print A.I                                    # Inverse of A.
    print linalg.solve(A, x)     # Solve the linear equation system.
    

    You can also have a look at the array module, which is a much more efficient implementation of lists when you have to deal with only one data type.