Elegant copy-by-value
Chad Netzer
cnetzer at mail.arc.nasa.gov
Mon Jan 13 17:00:47 EST 2003
On Saturday 11 January 2003 19:51, Carl Banks wrote:
> For example, lists (and Numeric
> arrays) can do this:
>
> a = b[:]
Just to be pedantic, Numeric arrays (ie, from the Numeric module) do
NOT copy when you slice them. They return views into the slice. This
break from Python semantics was done early on as a performance
enhancement, and can cause no end of confusion (unfortunately).
You copy Numeric arrays with the .copy() method. I think the
'numarray' people (who are building a replacement for Numeric) have
gone back and forth over whether to keep the
slices-are-views-not-copies feature, and have decided (for
compatibility w/ Numeric) to keep it as is.
But regardless, since it may matter, Numeric slices do not produce
copies, but views (or aliases).
--
Bay Area Python Interest Group - http://www.baypiggies.net/
Chad Netzer
cnetzer at mail.arc.nasa.gov
More information about the Python-list
mailing list