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