[Numpy-discussion] Re: What am I missing about concatenate?

Tim Hochberg tim.hochberg at cox.net
Thu Jun 1 12:59:02 CDT 2006


Christopher Barker wrote:

> Thanks all,
>
>
> Robert Kern wrote:
>
>> Look at vstack() (and also its friends hstack(), dstack() and 
>> column_stack() for
>> completeness).
>
>
> I like this, but need to keep Numeric/numarray compatibility for the 
> moment -- I think, I've just sent out a query to my users.
>
>
>
> Tim Hochberg wrote:
>
>> If you are using real arrays, use newaxis:
>>
>>     >>> a
>>    array([0, 1, 2])
>>     >>> b
>>    array([3, 4, 5])
>>     >>> concatenate([a[newaxis], b[newaxis]], 0)
>>    array([[0, 1, 2],
>>           [3, 4, 5]])
>
>
> I like this, but again, not in Numeric -- I really need to dump that 
> as soon as I can!


In Numeric, you can use NewAxis instead for the same effect.

>
>> hate newaxis, wrap the arrays in [] to give them an extra dimension. 
>> This tends to look nicer, but I suspect has poorer performance than 
>> above (haven't timed it though):
>>
>>     >>> concatenate([[a], [b]], 0)
>>    array([[0, 1, 2],
>>           [3, 4, 5]])
>
>
> Lovely. much cleaner.
>
> By they way, wouldn't wrapping in a tuple, be slightly better, 
> performance-wise (I know, probably negligible, but I always feel that 
> I should use a tuple when I don't need mutability)

I doubt it would make a signifigant difference and the square brackets 
are much easier to read IMO. Your mileage may vary.

-tim









More information about the Numpy-discussion mailing list