[Numpy-discussion] Should arr.diagonal() return a copy or a view? (1.7 compatibility issue)
tjhnson at gmail.com
Fri May 11 16:26:04 EDT 2012
On Fri, May 11, 2012 at 1:12 PM, Mark Wiebe <mwwiebe at gmail.com> wrote:
> On Fri, May 11, 2012 at 2:18 PM, Pauli Virtanen <pav at iki.fi> wrote:
>> 11.05.2012 17:54, Frédéric Bastien kirjoitti:
>> > In Theano we use a view, but that is not relevant as it is the
>> > compiler that tell what is inplace. So this is invisible to the user.
>> > What about a parameter to diagonal() that default to return a view not
>> > writable as you said. The user can then choose what it want and this
>> > don't break the inferface.
>> Agreed, it seems this is the appropriate way to go on here
>> `diagonal(copy=True)`. A more obscure alternative would be to add a
>> separate method that returns a view.
> This looks like the best way to deal with it, yes.
>> I don't think changing the default behavior in a later release is a good
>> idea. It's a sort of an API wart, but IMHO better that than subtle code
copy=True seems fine, but is this the final plan? What about long term,
should diag() eventually be brought in line with transpose() and reshape()
so that it is a view by default? Changing default behavior is certainly
not something that should be done all the time, but it *can* be done if
deprecated appropriately. A more consistent API is better than one with
warts (if this particular issue is actually seen as a wart).
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion