+1! I could never keep straight which stack function I needed anyway.

Wasn't there a proposal a while back for a more generic stacker, like
"tetrix" or something that allowed one to piece together tiles of different
sizes?

Ben Root

On Thu, Feb 5, 2015 at 2:06 PM, Stephan Hoyer <[email protected]> wrote:

> There are two usual ways to combine a sequence of arrays into a new array:
> 1. concatenated along an existing axis
> 2. stacked along a new axis
>
> For 1, we have np.concatenate. For 2, we have np.vstack, np.hstack,
> np.dstack and np.column_stack. For arrays with arbitrary dimensions, there
> is the np.array constructor, possibly with transpose to get the result in
> the correct order. (I've used this last option in the past but haven't been
> especially happy with it -- it takes some trial and error to get the axis
> swapping or transpose right for higher dimensional input.)
>
> This methods are similar but subtly distinct, and none of them generalize
> well to n-dimensional input. It seems like the function we are missing is
> the plain np.stack, which takes the axis to stack along as a keyword
> argument. The exact desired functionality is clearest to understand by
> example:
>
> >>> X = [np.random.randn(100, 200) for i in range(10)]
> >>> stack(X, axis=0).shape
> (10, 100, 200)
> >>> stack(X, axis=1).shape
> (100, 10, 200)
> >>> stack(X, axis=2).shape
> (100, 200, 10)
>
> So I'd like to propose this new function for numpy. The desired signature
> would be simply np.stack(arrays, axis=0). Ideally, the confusing mess of
> other stacking functions could then be deprecated, though we could probably
> never remove them.
>
> Matthew Rocklin recent wrote an out of core version this for his dask
> project (part of Blaze), which is what got me thinking about the need for
> this functionality:
> https://github.com/ContinuumIO/dask/pull/30
>
> Cheers,
> Stephan
>
> _______________________________________________
> NumPy-Discussion mailing list
> [email protected]
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to