Try just calling np.array_split on the full 2D array.  It splits along a
particular axis, which is selected using the axis argument of
np.array_split.  The axis to split along defaults to the first so the two
calls to np.array_split below are exactly equivalent.

In [16]: a = np.c_[:10,10:20,20:30]


In [17]: np.array_split(a, [2,5,8])

Out[17]:

[array([[ 0, 10, 20],

[ 1, 11, 21]]), array([[ 2, 12, 22],

[ 3, 13, 23],

[ 4, 14, 24]]), array([[ 5, 15, 25],

[ 6, 16, 26],

[ 7, 17, 27]]), array([[ 8, 18, 28],

[ 9, 19, 29]])]


In [18]: np.array_split(a, [2,5,8], 0)

Out[18]:

[array([[ 0, 10, 20],

[ 1, 11, 21]]), array([[ 2, 12, 22],

[ 3, 13, 23],

[ 4, 14, 24]]), array([[ 5, 15, 25],

[ 6, 16, 26],

[ 7, 17, 27]]), array([[ 8, 18, 28],

[ 9, 19, 29]])]


Eric


On Wed, Mar 23, 2016 at 9:06 AM, Ibrahim EL MEREHBI <bobmerh...@gmail.com>
wrote:

> Hello,
>
> I have a multi-diensional array that I would like to split its columns.
>
> For example consider,
>
> dat = np.array([np.arange(10),np.arange(10,20), np.arange(20,30)]).T
>
> array([[ 0, 10, 20],
>        [ 1, 11, 21],
>        [ 2, 12, 22],
>        [ 3, 13, 23],
>        [ 4, 14, 24],
>        [ 5, 15, 25],
>        [ 6, 16, 26],
>        [ 7, 17, 27],
>        [ 8, 18, 28],
>        [ 9, 19, 29]])
>
>
> I already can split one column at a time:
>
> np.array_split(dat[:,0], [2,5,8])
>
> [array([0, 1]), array([2, 3, 4]), array([5, 6, 7]), array([8, 9])]
>
>
> How can I extend this for all columns and (overwrite or) have a new
> multi-dimensional array?
>
> Thank you,
> Bob
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org
> https://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
https://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to