I'm looking for some FOSS/GPL programs (or Python libraries) for dealing with sparse matrices. I haven't found much online about these. Can someone please point me in the right direction?
Good computer programs for dealing with sparse matrices
-
2Shouldn't you ask this at [stackoverflow](http://stackoverflow.com) ? – 2010-09-27
-
1I have. No luck. It's mathematical, not programming. "Any programming language will do," I was told. – 2010-09-28
3 Answers
For general purpose, easy-to-use libraries, consider using tempelated libraries, such as MTL4, eigen, gmm++, ...etc. This article presents a bunch of them.
I haven't really seen any serious numerical computing being done in Python; FORTRAN is still standard, and Netlib has a number of (free!) libraries for solving sparse linear systems, sparse eigenproblems, ... etc. You are of course welcome to construct an interface from Python to these, or probably even better, translate these into Python. Good luck!
-
0Oh, I don't know if you consider these as serious but we have [this](http://abel.ee.ucla.edu/cvxopt/), [this](http://www.cds.caltech.edu/~murray/wiki/index.php/Control_Systems_Library_for_Python) and [this](http://www.pyrorobotics.org/). I used the first one and it is pretty good. Long story short, control theory and robotics people start to have enough of MATLAB and moving veeeery slowly to other platforms. – 2011-09-28
-
0@percusse: that time I posted that answer, I haven't seen 'em. ;) Wow, it's been a year already? Daaaang... – 2011-09-28
-
0No problem, I realized it before I post it, but I just wanted to mention those for the record, next year nobody will ever notice that they are 1 year apart. ;) – 2011-09-28
ARPACK is the most common and effective solution to problems involving large matrices (both sparse and dense). It's a FORTRAN library (with C++ bindings) and a very stable/mature one at that. I know personally that it is used extensively in academia, so I strongly recommend you give it a go.
In terms of Python, I believe SciPy/NumPY actually includes wrappers for ARPACK, though you'll need to investigate this a bit more. The actual implementation is written in C, so efficiency is not at all a problem.
-
0ARPACK is useful for calculating eigenvalue; it's not a general purpose sparse matrix manipulation. – 2010-09-27
-
0Well, you can solve linear systems with Arnoldi, but it's a bit like using a gold brick to swat flies... – 2010-09-27
-
0@ARPACK: It can do a bit more than that as I understand, including decomposition. Also, I did point out SciPy/NumPy, which is more general purpose. You're a harsh judge, is all I can say! – 2010-09-27
-
0too many of 'em on SE sites these days – 2010-09-28
-
0@ixtmixilix: Agreed. It seems to attract a lot of the anal-retentive sort, oh well. – 2010-09-28