[Numpy-discussion] np.vstack vs. np.stack

Eric Wieser wieser.eric+numpy at gmail.com
Thu Nov 9 17:11:17 EST 2017


I think the primary problems with it are:

   - A poor definition of “vertical” in the world of stacked matrices - in
   np.linalg land, this means axis=-2, but in vstack land, it means axis=0.
   - Mostly undocumented auto-2d behavior that doesn’t make you think well
   enough about dimensions. Numpy deliberately distinguishes between “row
   vectors” (1, N) and vectors (N,), so it’s a shame when APIs like vstack
   and np.matrix try to hide this distinction.

Eric

On Thu, 9 Nov 2017 at 13:59 Mark Bakker <markbak at gmail.com> wrote:

On 11/09/2017 04:30 AM, Joe wrote:
>> > Hello,
>> >
>> > I have a question and hope that you can help me.
>> >
>> > The doc for vstack mentions that "this function continues to be
>> > supported for backward compatibility, but you should prefer
>> > np.concatenate or np.stack."
>> >
>> > Using vstack was convenient because "the arrays must have the same shape
>> > along all but the first axis."
>> >
>> > So it was possible to stack an array (3,) and (2, 3) to a (3, 3) array
>> > without using e.g. atleast_2d on the (3,) array.
>> >
>> > Is there a possibility to mimic that behavior with np.concatenate or
>> > np.stack?
>> >
>>
> > Joe
>>
>>
> Can anybody explain why vstack is going the way of the dodo?
> Why are stack / concatenate better? What is 'bad' about vstack?
>
> Thanks,
>
> Mark
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at python.org
> https://mail.python.org/mailman/listinfo/numpy-discussion
>
​
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20171109/f3c2799f/attachment.html>


More information about the NumPy-Discussion mailing list