On Fri, Feb 12, 2021, 09:32 Robert Kern <robert.k...@gmail.com> wrote:
> On Fri, Feb 12, 2021 at 5:15 AM Eric Wieser <wieser.eric+nu...@gmail.com> > wrote: > >> > There might be some linear algebraic reason why those axis positions >> make sense, but I’m not aware of it... >> >> My guess is that the historical motivation was to allow grayscale `(H, >> W)` images to be converted into `(H, W, 1)` images so that they can be >> broadcast against `(H, W, 3)` RGB images. >> > > Correct. If you do introduce atleast_nd(), I'm not sure why you'd > deprecate and remove the one existing function that *isn't* made redundant > thereby. > `atleast_nd` handles the promotion of 2D to 3D correctly. The `pos` argument lets you tell it where to put the new axes. What's unintuitive to my is that the 1D case gets promoted to from shape `(x,)` to shape `(1, x, 1)`. It takes two calls to `atleast_nd` to replicate that behavior. One modification to `atleast_nd` I've thought about is making `pos` refer to the position of the existing axes in the new array rather than the position of the new axes, but that's likely not a useful way to go about it. - Joe > -- > Robert Kern > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion