John said:
Colin> You might like to take a look at PyMatrix. It is still
Colin> very much a development project, but I would appreciate
Colin> your thoughts on the areas where it is deficient, as
Colin> compared with MatLab.
Colin>
http://www3.sympatico.ca/cjw/PyMatrix
I looked over your site and examples, but didn't see any explanation
of what PyMatrix provides over the required numarray
You are right, the documentation needs improving.
The following is illustrative of matrix usage:
# tRegrn.py To use linear regresssion to illustrate matrix usage
# Note: PyMatrix provides a function to handle this sort of thing
import PyMatrix.matrix as m
# Suppose we have A*x= b, where A (a matrix) and b (a column vector) are
observed and we wish to
# obtain a least squares estimate of x.
# To illustrate we generate a test case:
x= m.M([1, 2, 3], type= m._nt.Float64).T
A= m.random(shape= (10, 3))
error= (m.random(shape= (10, 1)) - 0.5)/10 # ie. -0.05 .. 0.05
b= A * x + error
# solution
xEst= (A.T * A).I * A.T * b
print 'xEstimate:', xEst
and all the
helpful linear algebra and summary functions it provides in
numarray.linear_algebra and numarray.linear_algebra.mlab. With the
exception of Hilbert, most of the code seems like a wrapper of
numarray functionality.
There are a few other functions and methods, but the documentation makes
it clear that PyMatrix is based on numarray, in fact M (the main matrix
class) is a a sub-class of NumArray.
Why based on numarray, rather than numeric? Because, at the time the
project was started, numarray seemed to be set to replace numeric.
For a full list, see:
http://www3.sympatico.ca/cjw/PyMatrix/Doc/PackageEntry.html
Is the main difference how you define the default behavior of
operators?
The main differences are:
- PyMatrix is focused on two dimensional numeric structures,
row and column vectors are handled as matrices.
- It permits matrix arithmetic, for compatible matrices A
and B and integer n, the matrix operations A+B, A-B, A*B,
A/B and A**n are recognized.
- It uses properties to provide basic matrix operations such as:
I Inverse
T Transpose
EValues Eigenvalues
SVD Singular Value Decomposition
Det Determinant
- It provides a method to build sub-matrices into a larger
matrix
- It provides methods to aggregate data by row or column
Or is this just a starting point for a much larger
package?
No, quantiles are likely to be added soon and possibly symmetric
matrices, although it is not clear that the potential storage saving
justifies the additional processing. I am certainly not seeking the
bulk of SciPy.
c.l.p has a number of postings similar to "MATLAB2Python" from Sarge,
see below. If something like Huaiyu Zhu's MatPy were available then, it
seems to me, it could be of help to the Python user who works with matrices.
Colin W.
Hi, everybody!
I'm a moderately experienced programmer in Matlab, and looking for a
free computational language (Matlab is *REALLY* expensive for an
individual, like me).
I came across Python (actually Scipy) and immediately felt
comfortable with the interface and syntax.
I'm still a newbe, so, before attempting a serious work on it, I'd
like to hear any opinion about migration from Matlab to Python, and
also a rough comparison between these two languages.
Thanx in advance, and excuse me for my very bad English (I'm not a
native English speaker),
Sarge