[Numpy-discussion] Two bugs in numpy 0.9.2 and a suggestion.
Paulo J. S. Silva
pjssilva at ime.usp.br
Thu Jan 12 03:39:01 CST 2006
Hello,
I have just installed numpy 0.9.2 in my system. Thanks for the good
work. I think I got two bugs:
1) In the numpy.linalg method the cholesky decomposition doesn't work
because the function triu is not available from numpy.core. If you add a
line "from numpy import triu" on the top of the linalg.py file (with the
other imports), it starts working.
2) If you try to instantiate a ndarray with weird parameters it can
segfault and abort the interpreter. For example try to do the following:
a = arange(10.)
b = ndarray(a)
Now the suggestion. What about adding a "transpose" property (in the
Python parlance) to ndarray objects? I would call it "t". The following
Python code explains what I mean:
from numpy import *
class Myndarray(ndarray):
t = property(transpose, None, None)
If you add this 3 lines to a file, import the Myndarray class, and
create one of such arrays you will get transpose(a) by simply typing
a.t. This allow for the following type of code (which I prefer):
cost = dot(c.t, x)
instead of
cost = dot(transpose(c), x)
or
cost = dot(c.transpose(), x)
Such a compact notation can be a blessing in code that needs lots of
transpose (like the BFGS formula for example).
If I knew more about writing C extensions for Python I would try to do
it myself, but I don't. Is it possible to define properties in a C
extension?
Best,
Paulo
--
Paulo José da Silva e Silva
Professor Assistente do Dep. de Ciência da Computação
(Assistant Professor of the Computer Science Dept.)
Universidade de São Paulo - Brazil
e-mail: rsilva at ime.usp.br Web: http://www.ime.usp.br/~rsilva
Teoria é o que não entendemos o (Theory is something we don't)
suficiente para chamar de prática. (understand well enough to call
practice)
More information about the Numpy-discussion
mailing list