Den 07.03.2011 18:28, skrev Christopher Barker: > 1, 2, 3, 4 > 5, 6 > 7, 8, 9, 10, 11, 12 > 13, 14, 15 > ... > > In my case, these will only be 2-d, though I suppose one could have a > n-d version where the last dimension was ragged (or any dimension, I > suppose, though I'm having trouble wrapping my brain around what that > would look like..
A ragged array, as implemented in C++, Java or C# is just an array of arrays (or 'a pointer to an array of pointers'). Basically, that is an ndarray of ndarrays (or a list of ndarrays, whatever you prefer). >>> ra = np.zeros(4, dtype=np.ndarray) >>> ra[0] = np.array([1,2,3,4]) >>> ra[1] = np.array([5,6]) >>> ra[2] = np.array([7,8,9,10,11,12]) >>> ra[3] = np.array([13,14,15]) >>> ra array([[1 2 3 4], [5 6], [ 7 8 9 10 11 12], [13 14 15]], dtype=object) >>> ra[1][1] 6 >>> ra[2][:] array([ 7, 8, 9, 10, 11, 12]) Slicing in two dimensions does not work as some might expect: >>> ra[:2][:2] array([[1 2 3 4], [5 6]], dtype=object) This "strange" result would actually not be different from the ragged array semantics of C++, C# or Java if those languages had supported slicing. Indexing [::][::] instead of [::,::] corresponds to what you must do in C#, C++ and Java as well. (We are doing exactly the same, so why should it not be?) Sturla _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion