[Numpy-discussion] Counting array elements

Chris Barker Chris.Barker at noaa.gov
Mon Nov 1 15:35:24 EST 2004


Perry Greenfield wrote:
> This aspect of flat can be considered a wart. There are three different
> desired behaviors depending on who you talk to. For efficiency reasons,
> some only want flat (and even ravel) to work if the array is already
> contiguous; that is, they don't want copies unless they ask for them.

This isn't just efficiency: having a function (or method) that sometimes 
returns a copy, and sometimes a reference is asking for bugs. What 
happens if I make a change to the result in a function? Sometimes it 
will change the parent array, sometimes not.

> otherwise for it to return a view. Yet others always want a copy.
> So, are three different versions needed? Or options to a function?
> The drawback of .flat (as an attribute) is there is only one choice
> for behavior.

A agree. I vote for a method.

By the way, is it really impossible to have a discontiguous 1-d array? 
I'm not wizard at C or C++ but I've worked with the Numeric api enough 
to see what the problem is. However, it seems that there should be way 
to have a "get the n-th element" function or method to the Numarray 
object that should then work on polymorphic types, one of which would be 
a rank-1 non-contiguous array. Perhaps there is way too much existing 
code that relies on the array->strides[n] approach to introduce this 
now, but I think this kind of thing would be the key to making it easier 
to write optimized Numarray functions.


> I'd
> very much prefer not proliferate any more flavors of behavior
> and just settle on one.

+5 on this. I'd really like SciPy and numarray both to have the goal of 
merging the two.

-Chris



-- 
Christopher Barker, Ph.D.
Oceanographer
                                     		
NOAA/OR&R/HAZMAT         (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at noaa.gov




More information about the NumPy-Discussion mailing list