[Numpy-discussion] ndarray.T2 for 2D transpose
insertinterestingnamehere at gmail.com
Thu Apr 7 15:21:13 EDT 2016
On Thu, Apr 7, 2016 at 12:18 PM Chris Barker <chris.barker at noaa.gov> wrote:
> On Thu, Apr 7, 2016 at 10:00 AM, Ian Henriksen <
> insertinterestingnamehere at gmail.com> wrote:
>> Here's another example that I've seen catch people now and again.
>> A = np.random.rand(100, 100)
>> b = np.random.rand(10)
>> A * b.T
> typo? that was supposed to be
> b = np.random.rand(100). yes?
Hahaha, thanks, yes, in describing a common typo I demonstrated another
least this one doesn't fail silently.
> This is exactly what someone else referred to as the expectations of
> someone that comes from MATLAB, and doesn't yet "get" that 1D arrays are 1D
> All of this is EXACTLY the motivation for the matric class -- which never
> took off, and was never complete (it needed a row and column vector
> implementation, if you ask me. But Ithikn the reason it didn't take off is
> that it really isn't that useful, but is different enough from regular
> arrays to be a greater source of confusion. And it was decided that all
> people REALLY wanted was an obviou sway to get matric multiply, which we
> now have with @.
Most of the cases I've seen this error have come from people unfamiliar with
matlab who, like I said, weren't tracking dimensions quite as carefully as
should have. That said, it's just anecdotal evidence. I wouldn't be at all
this were an issue for matlab users as well.
As far as the matrix class goes, we really shouldn't be telling anyone to
> So this discussion brings up that we also need an easy an obvious way to
> make a column vector --
> which would be a synonym for np.reshape(arr, (-1,1))
> would that make anyone happy?
> NOTE: having transposing a 1D array raise an exception would help remove a
> lot of the confusion, but it may be too late for that....
> In this case the user pretty clearly meant to be broadcasting along the
>> rows of A
>> rather than along the columns, but the code fails silently.
> hence the exception idea....
Yep. An exception may be the best way forward here. My biggest objection is
the current semantics make it easy for people to silently get unintended
> maybe a warning?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion