Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-11 Thread Ian Henriksen
On Mon, Apr 11, 2016 at 5:24 PM Chris Barker wrote: > On Fri, Apr 8, 2016 at 4:37 PM, Ian Henriksen < > insertinterestingnameh...@gmail.com> wrote: > > >> If we introduced the T2 syntax, this would be valid: >> >> a @ b.T2 >> >> It makes the intent much clearer. >> > > would: > > a @ colvector(b)

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-11 Thread Chris Barker
On Fri, Apr 8, 2016 at 4:37 PM, Ian Henriksen < insertinterestingnameh...@gmail.com> wrote: > If we introduced the T2 syntax, this would be valid: > > a @ b.T2 > > It makes the intent much clearer. > would: a @ colvector(b) work too? or is T2 generalized to more than one column? (though I sup

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread Ian Henriksen
On Fri, Apr 8, 2016 at 4:04 PM Alan Isaac wrote: > On 4/8/2016 5:13 PM, Nathaniel Smith wrote: > > he doesn't want 2d matrices, he wants > > tools that make it easy to work with stacks of 2d matrices stored in > > 2-or-more-dimensional arrays. > > > Like `map`? > > Alan Isaac > > Sorry if there's

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread Alan Isaac
On 4/8/2016 5:13 PM, Nathaniel Smith wrote: he doesn't want 2d matrices, he wants tools that make it easy to work with stacks of 2d matrices stored in 2-or-more-dimensional arrays. Like `map`? Alan Isaac ___ NumPy-Discussion mailing list NumPy-Disc

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread josef.pktd
On Fri, Apr 8, 2016 at 5:11 PM, Charles R Harris wrote: > > > On Fri, Apr 8, 2016 at 2:52 PM, wrote: > >> >> >> On Fri, Apr 8, 2016 at 3:55 PM, Charles R Harris < >> charlesr.har...@gmail.com> wrote: >> >>> >>> >>> On Fri, Apr 8, 2016 at 12:17 PM, Chris Barker >>> wrote: >>> On Fri, Apr 8,

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread Nathaniel Smith
On Fri, Apr 8, 2016 at 2:09 PM, Alan Isaac wrote: > On 4/8/2016 4:28 PM, Ian Henriksen wrote: >> >> The biggest things to me are having a broadcasting 2D transpose and having >> some >> form of transpose that doesn't silently pass 1D arrays through unchanged. > > > > This comment, like much of thi

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread Charles R Harris
On Fri, Apr 8, 2016 at 2:52 PM, wrote: > > > On Fri, Apr 8, 2016 at 3:55 PM, Charles R Harris < > charlesr.har...@gmail.com> wrote: > >> >> >> On Fri, Apr 8, 2016 at 12:17 PM, Chris Barker >> wrote: >> >>> On Fri, Apr 8, 2016 at 9:59 AM, Charles R Harris < >>> charlesr.har...@gmail.com> wrote: >

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread Alan Isaac
On 4/8/2016 4:28 PM, Ian Henriksen wrote: The biggest things to me are having a broadcasting 2D transpose and having some form of transpose that doesn't silently pass 1D arrays through unchanged. This comment, like much of this thread, seems to long for the matrix class but not want to actuall

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread josef.pktd
On Fri, Apr 8, 2016 at 3:55 PM, Charles R Harris wrote: > > > On Fri, Apr 8, 2016 at 12:17 PM, Chris Barker > wrote: > >> On Fri, Apr 8, 2016 at 9:59 AM, Charles R Harris < >> charlesr.har...@gmail.com> wrote: >> >>> Apropos column/row vectors, I've toyed a bit with the idea of adding a >>> flag

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread Ian Henriksen
On Thu, Apr 7, 2016 at 4:04 PM Stéfan van der Walt wrote: > On 7 April 2016 at 11:17, Chris Barker wrote: > > np.col_vector(arr) > > > > which would be a synonym for np.reshape(arr, (-1,1)) > > > > would that make anyone happy? > > I'm curious to see use cases where this doesn't solve the proble

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread Charles R Harris
On Fri, Apr 8, 2016 at 12:17 PM, Chris Barker wrote: > On Fri, Apr 8, 2016 at 9:59 AM, Charles R Harris < > charlesr.har...@gmail.com> wrote: > >> Apropos column/row vectors, I've toyed a bit with the idea of adding a >> flag to numpy arrays to indicate that the last index is one or the other, >>

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread Chris Barker
On Fri, Apr 8, 2016 at 9:59 AM, Charles R Harris wrote: > Apropos column/row vectors, I've toyed a bit with the idea of adding a > flag to numpy arrays to indicate that the last index is one or the other, > and maybe neither. > I don't follow this. wouldn't it ony be an issue for 1D arrays, rath

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread Stéfan van der Walt
On 7 April 2016 at 15:03, Stéfan van der Walt wrote: > 4) x @ colvec(x) -- gives an error, but perhaps this should work and > be equivalent to np.dot(colvec(x), rowvec(x)) ? Sorry, that should have been 4) colvec(x) @ x Stéfan ___ NumPy-Discussion ma

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-08 Thread Charles R Harris
On Thu, Apr 7, 2016 at 4:03 PM, Stéfan van der Walt wrote: > On 7 April 2016 at 11:17, Chris Barker wrote: > > np.col_vector(arr) > > > > which would be a synonym for np.reshape(arr, (-1,1)) > > > > would that make anyone happy? > > I'm curious to see use cases where this doesn't solve the probl

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Stéfan van der Walt
On 7 April 2016 at 11:17, Chris Barker wrote: > np.col_vector(arr) > > which would be a synonym for np.reshape(arr, (-1,1)) > > would that make anyone happy? I'm curious to see use cases where this doesn't solve the problem. The most common operations that I run into: colvec = lambda x: np.c_[x

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Chris Barker
On Thu, Apr 7, 2016 at 11:31 AM, wrote: > maybe a warning? >> > > AFAIR, there is a lot of code that works correctly with .T being a noop > for 1D > e.g. covariance matrix/inner product x.T dot y as mentioned before. > oh well, then no warning, either. > write unit tests with non square 2d arr

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Nathaniel Smith
On Thu, Apr 7, 2016 at 10:00 AM, Ian Henriksen 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 > > In this case the user pretty clearly meant to be broadcasting along the rows > of A > rather than alo

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread josef.pktd
On Thu, Apr 7, 2016 at 4:07 PM, Ian Henriksen < insertinterestingnameh...@gmail.com> wrote: > On Thu, Apr 7, 2016 at 1:53 PM wrote: > >> On Thu, Apr 7, 2016 at 3:26 PM, Ian Henriksen < >> insertinterestingnameh...@gmail.com> wrote: >> >>> On Thu, Apr 7, 2016 at 12:31 PM wrote: >>> write uni

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Ian Henriksen
On Thu, Apr 7, 2016 at 1:53 PM wrote: > On Thu, Apr 7, 2016 at 3:26 PM, Ian Henriksen < > insertinterestingnameh...@gmail.com> wrote: > >> On Thu, Apr 7, 2016 at 12:31 PM wrote: >> >>> write unit tests with non square 2d arrays and the exception / test >>> error shows up fast. >>> >>> Josef >>>

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread josef.pktd
On Thu, Apr 7, 2016 at 3:26 PM, Ian Henriksen < insertinterestingnameh...@gmail.com> wrote: > On Thu, Apr 7, 2016 at 12:31 PM wrote: > >> write unit tests with non square 2d arrays and the exception / test error >> shows up fast. >> >> Josef >> >> > Absolutely, but good programming practices don'

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Ian Henriksen
On Thu, Apr 7, 2016 at 12:31 PM wrote: > write unit tests with non square 2d arrays and the exception / test error > shows up fast. > > Josef > > Absolutely, but good programming practices don't totally obviate helpful error messages. Best, -Ian ___ Nu

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Ian Henriksen
On Thu, Apr 7, 2016 at 12:18 PM Chris Barker wrote: > On Thu, Apr 7, 2016 at 10:00 AM, Ian Henriksen < > insertinterestingnameh...@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 >> >

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Irvin Probst
On Thu, 7 Apr 2016 14:31:17 -0400, josef.p...@gmail.com wrote: So this discussion brings up that we also need an easy an obvious way to make a column vector --  maybe: np.col_vector(arr) FWIW I would give a +1e42 to something like np.colvect and np.rowvect (or whatever variant of these name

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread josef.pktd
On Thu, Apr 7, 2016 at 2:17 PM, Chris Barker wrote: > On Thu, Apr 7, 2016 at 10:00 AM, Ian Henriksen < > insertinterestingnameh...@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 >> >

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Matthew Brett
On Thu, Apr 7, 2016 at 11:17 AM, Chris Barker wrote: > On Thu, Apr 7, 2016 at 10:00 AM, Ian Henriksen > 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

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Chris Barker
On Thu, Apr 7, 2016 at 10:00 AM, Ian Henriksen < insertinterestingnameh...@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? Th

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread josef.pktd
On Thu, Apr 7, 2016 at 1:35 PM, Sebastian Berg wrote: > On Do, 2016-04-07 at 13:29 -0400, josef.p...@gmail.com wrote: > > > > > > On Thu, Apr 7, 2016 at 1:20 PM, Sebastian Berg < > > sebast...@sipsolutions.net> wrote: > > > On Do, 2016-04-07 at 11:56 -0400, josef.p...@gmail.com wrote: > > > > > >

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Sebastian Berg
On Do, 2016-04-07 at 13:29 -0400, josef.p...@gmail.com wrote: > > > On Thu, Apr 7, 2016 at 1:20 PM, Sebastian Berg < > sebast...@sipsolutions.net> wrote: > > On Do, 2016-04-07 at 11:56 -0400, josef.p...@gmail.com wrote: > > > > > > > > > > > > > > > > > > I don't think numpy treats 1d arrays a

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread josef.pktd
On Thu, Apr 7, 2016 at 1:20 PM, Sebastian Berg wrote: > On Do, 2016-04-07 at 11:56 -0400, josef.p...@gmail.com wrote: > > > > > > > > > > > I don't think numpy treats 1d arrays as row vectors. numpy has C > > -order for axis preference which coincides in many cases with row > > vector behavior.

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Sebastian Berg
On Do, 2016-04-07 at 17:00 +, Ian Henriksen wrote: > > > On Wed, Apr 6, 2016 at 3:21 PM Nathaniel Smith wrote: > > Can you elaborate on what you're doing that you find verbose and > > confusing, maybe paste an example? I've never had any trouble like > > this doing linear algebra with @ or

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Sebastian Berg
On Do, 2016-04-07 at 11:56 -0400, josef.p...@gmail.com wrote: > > > > I don't think numpy treats 1d arrays as row vectors. numpy has C > -order for axis preference which coincides in many cases with row > vector behavior. > Well, broadcasting rules, are that (n,) should typically behave sim

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Chris Barker
On Thu, Apr 7, 2016 at 8:13 AM, Todd wrote: > First you need to turn a into a 2D array. I can think of 10 ways to do > this off the top of my head, and there may be more: > > snip Basically, my argument here is the same as the argument from pep465 for the > inclusion of the @ operator: > > http

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Ian Henriksen
On Wed, Apr 6, 2016 at 3:21 PM Nathaniel Smith wrote: > Can you elaborate on what you're doing that you find verbose and > confusing, maybe paste an example? I've never had any trouble like > this doing linear algebra with @ or dot (which have similar semantics > for 1d arrays), which is probably

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread josef.pktd
On Thu, Apr 7, 2016 at 11:42 AM, Todd wrote: > On Thu, Apr 7, 2016 at 11:35 AM, wrote: >> >> On Thu, Apr 7, 2016 at 11:13 AM, Todd wrote: >> > On Wed, Apr 6, 2016 at 5:20 PM, Nathaniel Smith wrote: >> >> >> >> On Wed, Apr 6, 2016 at 10:43 AM, Todd wrote: >> >> > >> >> > My intention was to mak

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Todd
On Thu, Apr 7, 2016 at 11:35 AM, wrote: > On Thu, Apr 7, 2016 at 11:13 AM, Todd wrote: > > On Wed, Apr 6, 2016 at 5:20 PM, Nathaniel Smith wrote: > >> > >> On Wed, Apr 6, 2016 at 10:43 AM, Todd wrote: > >> > > >> > My intention was to make linear algebra operations easier in numpy. > >> > With

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread josef.pktd
On Thu, Apr 7, 2016 at 11:13 AM, Todd wrote: > On Wed, Apr 6, 2016 at 5:20 PM, Nathaniel Smith wrote: >> >> On Wed, Apr 6, 2016 at 10:43 AM, Todd wrote: >> > >> > My intention was to make linear algebra operations easier in numpy. >> > With >> > the @ operator available, it is now very easy to d

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Todd
On Thu, Apr 7, 2016 at 3:39 AM, Irvin Probst wrote: > On 06/04/2016 04:11, Todd wrote: > > When you try to transpose a 1D array, it does nothing. This is the > correct behavior, since it transposing a 1D array is meaningless. However, > this can often lead to unexpected errors since this is rar

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Todd
On Thu, Apr 7, 2016 at 4:59 AM, Joseph Martinot-Lagarde < contreba...@gmail.com> wrote: > Alan Isaac gmail.com> writes: > > > But underlying the proposal is apparently the > > idea that there be an attribute equivalent to > > `atleast_2d`. Then call it `d2p`. > > You can now have `a.d2p.T` which

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Todd
On Wed, Apr 6, 2016 at 5:20 PM, Nathaniel Smith wrote: > On Wed, Apr 6, 2016 at 10:43 AM, Todd wrote: > > > > My intention was to make linear algebra operations easier in numpy. With > > the @ operator available, it is now very easy to do basic linear algebra > on > > arrays without needing the

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Joseph Martinot-Lagarde
> > For a 1D array a of shape (N,), I expect a.T2 to be of shape (N, 1), > > Why not (1,N)? -- it is not well defined, though I suppose it's not so > bad to establish a convention that a 1-D array is a "row vector" > rather than a "column vector". I like Todd's simple proposal: a.T2 should be equi

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Joseph Martinot-Lagarde
Alan Isaac gmail.com> writes: > But underlying the proposal is apparently the > idea that there be an attribute equivalent to > `atleast_2d`. Then call it `d2p`. > You can now have `a.d2p.T` which is a lot > more explicit and general than say `a.T2`, > while requiring only 3 more keystrokes. H

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-07 Thread Irvin Probst
On 06/04/2016 04:11, Todd wrote: When you try to transpose a 1D array, it does nothing. This is the correct behavior, since it transposing a 1D array is meaningless. However, this can often lead to unexpected errors since this is rarely what you want. You can convert the array to 2D, using

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-06 Thread Nathaniel Smith
On Wed, Apr 6, 2016 at 10:43 AM, Todd wrote: > On Tue, Apr 5, 2016 at 11:14 PM, Nathaniel Smith wrote: >> >> On Tue, Apr 5, 2016 at 7:11 PM, Todd wrote: >> > When you try to transpose a 1D array, it does nothing. This is the >> > correct >> > behavior, since it transposing a 1D array is meaning

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-06 Thread Chris Barker
On Wed, Apr 6, 2016 at 10:47 AM, Todd wrote: > > I think that cat is already out of the bag. As long as you can do matrix > multiplication on arrays using the @ operator, I think they aren't really > "pure" anymore. > not really -- you still need to use arrays that are the "correct" shape. Idea

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-06 Thread Alan Isaac
On 4/6/2016 1:47 PM, Todd wrote: My suggestion is that this explicitly increases the number of dimensions to at least 2. The result will always have at least 2 dimensions. So 0D -> 2D, 1D -> 2D, 2D -> 2D, 3D -> 3D, 4D -> 4D, etc. So this would be equivalent to the existing `atleast_2d` function

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-06 Thread Todd
On Wed, Apr 6, 2016 at 11:44 AM, Chris Barker - NOAA Federal < chris.bar...@noaa.gov> wrote: > But the truth is that Numpy arrays are arrays, not matrices and vectors. > > The "right" way to do this is to properly extend and support the > matrix object, adding row and column vector objects, and th

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-06 Thread Todd
On Tue, Apr 5, 2016 at 11:14 PM, Nathaniel Smith wrote: > On Tue, Apr 5, 2016 at 7:11 PM, Todd wrote: > > When you try to transpose a 1D array, it does nothing. This is the > correct > > behavior, since it transposing a 1D array is meaningless. However, this > can > > often lead to unexpected

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-06 Thread Todd
I would make `arr.T2` the same as `np.atleast_2d(arr).T`. So a 1D array would act as a row vector, since that is already the convention for coercing 1D arrays to 2D. On Tue, Apr 5, 2016 at 10:49 PM, Juan Nunez-Iglesias wrote: > Todd, > > Would you consider a 1D array to be a row vector or a col

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-06 Thread Ian Henriksen
On Tue, Apr 5, 2016 at 9:14 PM Nathaniel Smith wrote: > On Tue, Apr 5, 2016 at 7:11 PM, Todd wrote: > > When you try to transpose a 1D array, it does nothing. This is the > correct > > behavior, since it transposing a 1D array is meaningless. However, this > can > > often lead to unexpected er

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-06 Thread Chris Barker - NOAA Federal
> I think that the problem is not that it doesn't raise an error for 1D array, > but that it doesn't do anything useful to 1D arrays. Raising an error would > change nothing to the way transpose is used now. No, but it would make it clear that you can't expect transpose to make a 1D array into a2D

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-06 Thread Joseph Martinot-Lagarde
Nathaniel Smith pobox.com> writes: > An alternative that was mentioned in the bug tracker > (https://github.com/numpy/numpy/issues/7495), possibly by me, would be > to have arr.T2 act as a stacked-transpose operator, i.e. treat an arr > with shape (..., n, m) as being a (...)-shaped stack of (n,

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-05 Thread Nathaniel Smith
On Tue, Apr 5, 2016 at 7:11 PM, Todd wrote: > When you try to transpose a 1D array, it does nothing. This is the correct > behavior, since it transposing a 1D array is meaningless. However, this can > often lead to unexpected errors since this is rarely what you want. You can > convert the arra

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-05 Thread Juan Nunez-Iglesias
Todd, Would you consider a 1D array to be a row vector or a column vector for the purposes of transposition? The "correct" answer is not clear to me. Juan. On Wed, Apr 6, 2016 at 12:26 PM, Alan Isaac wrote: > On 4/5/2016 10:11 PM, Todd wrote: > >> When you try to transpose a 1D array, it does

Re: [Numpy-discussion] ndarray.T2 for 2D transpose

2016-04-05 Thread Alan Isaac
On 4/5/2016 10:11 PM, Todd wrote: When you try to transpose a 1D array, it does nothing. This is the correct behavior, since it transposing a 1D array is meaningless. However, this can often lead to unexpected errors since this is rarely what you want. You can convert the array to 2D, using `np