[Numpy-discussion] Further comments

Magnus Lie Hetland magnus at hetland.org
Sat Dec 28 14:29:04 CST 2002


Perry Greenfield <perry at stsci.edu>:
>
> > There needs to be a function or method that returns the number of 
> > elements in an array.
> > 
> > def Elements(array):
> >      """Number of elements in an array.
> > 
> >      This version is slow.
> >      """
> >      return numarray.multiply.reduce(array.shape)

len(ravel(array)) may be a faster in some cases, it seems. (Or
ravel(array).shape[0], for that matter).

BTW: Using the name "array" here seems just as bad as the use of
"type" in numarray... Just a thought :]

[snip]
> > The following function is useful for downsizing arrays. I suggest that
> > it should be a ufunc method. This is how I have used reduceat in Numeric.
> > 
> > def blockreduce(array, blocksizes, ufunc):
> >      """Apply ufunc.reduce to blocks in an array."""
[snip]
> We certainly have frequent need for a binning function (i.e.,
> the equivalent of a blockreduce for add). Do others see this
> as a generally useful extension for all binary ufuncs?

Not sure if I fully understand this -- but in my work on sequences and
time series, I certainly need to do stuff like sums and averages over
fixed-sized blocks of one-dimensional arrays... (Discretization.) But
there are easier ways of doing that, I suppose (with reshape or
indices, for example).

-- 
Magnus Lie Hetland
http://hetland.org




More information about the Numpy-discussion mailing list