[Numpy-discussion] Zeroing an existing array

Andrew P. Lentvorski, Jr. bsder at allcaps.org
Wed May 14 18:08:06 EDT 2003


On Wed, 14 May 2003, Perry Greenfield wrote:

> > >>> import numarray
> > >>> a = numarray.arange(6)
> > >>> a
> > array([0, 1, 2, 3, 4, 5])
> > >>> a[:] = 0.0
> > >>> a
> > array([0, 0, 0, 0, 0, 0])
> > 
> Is there any reason for anything else if this does the job?
> This is how I would recommend the action be performed.

It depends.  How does the slicing code work?

If it iterates across the matrix indicies (requiring multiply and add
operations to index specific memory locations), this will be much slower
than doing a contiguous memory fill (1 add and 1 multiply per index vs. 
increment).  This is not a small hit, we're talking factors of 2x, 4x, 6x.

If the slicing code special cases "array[:] = n" to be a memory fill, then
probably not.

-a





More information about the NumPy-Discussion mailing list