[Numpy-discussion] Syntax Improvement for Array Transpose

Stephan Hoyer shoyer at gmail.com
Tue Jun 25 10:41:39 EDT 2019


On Tue, Jun 25, 2019 at 7:20 AM Todd <toddrjen at gmail.com> wrote:

> On Tue, Jun 25, 2019 at 9:35 AM Juan Nunez-Iglesias <jni.soma at gmail.com>
> wrote:
>
>> On Mon, 24 Jun 2019, at 11:25 PM, Marten van Kerkwijk wrote:
>>
>> Just to be sure: for a 1-d array, you'd both consider `.T` giving a shape
>> of `(n, 1)` the right behaviour? I.e., it should still change from what it
>> is now - which is to leave the shape at `(n,)`.
>>
>>
>> Just to chime in as a user: v.T should continue to be a silent no-op for
>> 1D arrays. NumPy makes it arbitrary whether a 1D array is viewed as a row
>> or column vector, but we often want to write .T to match the notation in a
>> paper we're implementing.
>>
>
> Why should it be silent?  This is a source of bugs.  At least in my
> experience, generally when people write v.T it is a mistake.  Either they
> are coming from another language that works differently, or they failed to
> properly check their function arguments.  And if you are doing it on
> purpose, you are doing something you know is a no-op for essentially
> documentation purposes, and I would think that is the sort of thing you
> need to make as explicit as possible.  "Errors should never pass silently.
> Unless explicitly silenced."
>

Writing v.T is also sensible if you're writing code that could apply
equally well to either a single vector or a stack of vectors. This mirrors
the behavior of @, which also allows either single vectors or stacks of
vectors (matrices) with the same syntax.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20190625/e987e827/attachment.html>


More information about the NumPy-Discussion mailing list