> On Wednesday, Nov 14, 2018 at 11:46 PM, Stephan Hoyer <sho...@gmail.com 
> (mailto:sho...@gmail.com)> wrote:
>
>
> On Wed, Nov 14, 2018 at 2:35 PM Sebastian Berg <sebast...@sipsolutions.net 
> (mailto:sebast...@sipsolutions.net)> wrote:
> > On Wed, 2018-11-14 at 14:32 -0500, Marten van Kerkwijk wrote:
> > > Code being better than words: see
> > > https://github.com/numpy/numpy/pull/12388 for an implementation. The
> > > change in the code proper is very small, though it is worrying that
> > > it causes two rather unrelated tests too fail (even if arguably both
> > > tests were wrong).
> > >
> > > Note that this does not give flexibility to put the axis where one
> > > wants; as written, the code made putting it at the start the obvious
> > > solution, as it avoids doing anything with the shapes of start and
> > > stop.
> >
> > Hehe, my first gut feeling was the last axis to be the obvious one ;).
> > This has been discussed before (but what hasn't) I believe, probably
> > some old issue or even PR somewhere.
> > I am mildly in favor, just because there is probably not much reason
> > against an easy vectorization. Doesn't need to be advertised much in
> > the docs anyway.
> > Although it might be good to settle the "obvious" part in case I am not
> > alone in first thinking of -1 being the obvious default. I would
> > probably skip the axis argument for now, unless someone actually has a
> > use case.
>
> Indeed -- I think the best argument for adding an "axis" argument is that it 
> allows people to be explicit about where the axis ends up, e.g., both 
> np.linspace(start, stop, num=5, axis=0) and np.linspace(start, stop, num=5, 
> axis=-1) make their intent quite clear.
>
> To me, axis=0 feels like the right default, matching np.concatenate and 
> np.stack. But NumPy already has split conventions for this sort of thing 
> (e.g., gufuncs add axes at the end), so I like the explicit option.

I’d like to have another vote for axis=-1 by default. Stack and concatenate are 
different because we are concatenating/stacking complete arrays, so it makes 
sense to “compose” them along the first axis to maintain C-contiguous-ness.

I actually think of this as the reverse, we are “composing/combining” lots of 
1D arrays over all the other dimensions, so to preserve C-contiguous-ness, it’s 
better to have axis=-1.

> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion

Best Regards,
Hameer Abbasi

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to