[Numpy-discussion] design issues - octave 'incompatibilities'

Soeren Sonnenburg python-ml at nn7.de
Wed Jul 27 15:03:10 CDT 2005


On Mon, 2005-07-25 at 22:39 -0700, Robert Kern wrote:
> Soeren Sonnenburg wrote:
>
> [snip]
> 
> > In my eyes 'array broadcasting' is confusing and should rather be in a
> > function like meshgrid and instead a*b should return
> > matrixmultiply(a,b) ...
> 
> Spend some time with it. It will probably grow on you. Numeric is not 
[...]
> Again, Numeric is a package for arrays, not just linear algebra. Please 
> spend some more time with Python and Numeric before deciding that they 
> must be changed to match your preconceptions.

I realize that I just need plain matrices and operations on them so I am
probably better off with cvxopt at that point.

> > I realize that with lists it is ok to grow them via slicing.
> > 
> > x=[]
> > x[0]=1
> > IndexError: list assignment index out of range
> > x[0:0]=[1]
> > x
> > [1]
> > 
> > that seems not to work with numarray ... or ?
> > 
> > y=array()
> > y[0]=1
> > TypeError: object does not support item assignment
> > y[0:0]=array([1])
> > TypeError: object does not support item assignment
> 
> Python lists are designed to grow dynamically. Their memory is 
> preallocated so that growing them is on average pretty cheap. Numeric 
> arrays are not, nor will they be.

Well I don't claim that this is/must be efficient. It is just what I
would have expected to work if I use standard python arrays and now
numarrays.

Soeren.





More information about the Numpy-discussion mailing list