# [Numpy-discussion] how to create an array of objects that are sequences?

Christopher Barker Chris.Barker@noaa....
Sun Jan 6 02:01:27 CST 2008

Robert Kern wrote:
> Chris Barker wrote:
>> What if your "objects" were nested sequences, and you wanted to partly
>> flatten them -- which would you flatten?
>
> I'm pretty sure that that is exactly the ambiguity that the depth option
> resolves. Can you give me an example where it's still ambiguous with the depth
> information provided?

I was imagining:

Say you have a bunch of nested sequences that, fully expanded, would
yield a (i,j,k) rank-3 array. If you wanted a rank-2 array, you could
have either:
a (i,j) array with each element being a length-k sequence
or:
a (i,k) array, with each element being a length-j sequence.

This is quite trivial with numpy n-d arrays.

However, while you could build either of those from nested sequences,
there isn't, in fact, and object in there that is that length-j sequence.

I guess this really points to the power of n-d arrays!

Here's a simple example:

t = (((1,2),(3,4)),((5,6),(7,8)))

depth 1 -- (4,):
array([(1, 2), (3, 4), (5, 6), (7, 8)], dtype=object)
>>> a[0]
(1, 2)

depth 1 -- (2,)
>>> a
array([(1, 2, 3, 4), (5, 6, 7, 8)], dtype=object)
>>> a[0]
(1, 2, 3, 4)

But since there was no object in the original sequence that actually had
a 4-tuple, maybe no one would ever be looking for that.

-Chris

--
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker@noaa.gov