[Numpy-discussion] [Numpy-svn] aada93: ENH: Add 'subok' parameter to PyArray_NewLikeArray...

Mark Wiebe mwwiebe at gmail.com
Tue Mar 15 15:33:04 EDT 2011

On Tue, Mar 15, 2011 at 12:25 PM, Sebastian Haase <seb.haase at gmail.com>wrote:

> <snip>
> >
> > Log Message:
> > -----------
> > ENH: Add 'subok' parameter to PyArray_NewLikeArray, np.empty_like,
> np.zeros_like, and np.ones_like
> >
> > This way, the sub-type can be avoided if necessary. This helps mitigate,
> > but doesn't fix, ticket #1753, by allowing "b = np.empty_like(a,
> subok=False)".
> >
> I'm really not in a position to comment on the depths of the numpy API,
> but my understanding of np.<any>_like( ... )  was that it would create
> always
> "normal" ndarrays just taking shape and dtype from the given array.
> So what should the interpretation of "subok" be ?
> Can you elaborate ... ?

You're understanding is half-right. There was previously an inconsistency,
where zeros_like and empty_like did what you expect, while ones_like kept
the subtype, see this ticket: http://projects.scipy.org/numpy/ticket/929.
Because ones_like is a ufunc, switching it to behave like the others did is
much harder than going the other way, and intuitively I would expect
"*_like" to produce a matrix when given a matrix, so I fixed it to preserve
the subtype. This patch extends the functions to allow for a choice between
the previous two behaviors. The parameter "subok" is exactly like "subok" in
the array constructor, the name was chosen for consistency.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20110315/8c198fd5/attachment.html>

More information about the NumPy-Discussion mailing list