[Numpy-discussion] Generalize hstack/vstack --> stack; Block matrices like in matlab
stefan.otte at gmail.com
Wed Oct 29 10:59:30 EDT 2014
there are several ways how to proceed.
- My proposed solution covers the 80% case quite well (at least I use
it all the time). I'd convert the doctests into unittests and we're
- We could slightly change the interface to leave out the surrounding
square brackets, i.e. turning `stack([[a, b], [c, d]])` into
`stack([a, b], [c, d])`
- We could extend it even further allowing a "filler value" for non
set values and a "shape" argument. This could be done later as well.
- `bmat` is not really matrix specific. We could refactor `bmat` a bit
to use the same logic in `stack`. Except the `matrix` calls `bmat` and
`_from_string` are pretty agnostic to the input.
I'm in favor of the first or last approach. The first: because it
already works and is quite simple. The last: because the logic and
tests of both `bmat` and `stack` would be the same and the feature to
specify a string representation of the block matrix is nice.
On Tue, Oct 28, 2014 at 7:46 PM, Nathaniel Smith <njs at pobox.com> wrote:
> On 28 Oct 2014 18:34, "Stefan Otte" <stefan.otte at gmail.com> wrote:
>> In the last weeks I tested `np.asarray(np.bmat(....))` as `stack`
>> function and it works quite well. So the question persits: If `bmat`
>> already offers something like `stack` should we even bother
>> implementing `stack`? More code leads to more
>> bugs and maintenance work. (However, the current implementation is
>> only 5 lines and by using `bmat` which would reduce that even more.)
> In the long run we're trying to reduce usage of np.matrix and ideally
> deprecate it entirely. So yes, providing ndarray equivalents of matrix
> functionality (like bmat) is valuable.
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
More information about the NumPy-Discussion