vsplit

vsplit(ary, indices_or_sections)

Split an array into multiple sub-arrays vertically (row-wise).

vsplit is equivalent to split with axis=0 (default): the array is always split along the first axis regardless of the array dimension.

Parameters:
ary : ndarray

Array to be divided into sub-arrays.

indices_or_sections : int or 1 - D Python tuple, list or set.

If indices_or_sections is an integer, N, the array will be divided into N equal arrays along axis 0. If such a split is not possible, an error is raised.

If indices_or_sections is a 1-D array of sorted integers, the entries indicate where along axis 0 the array is split. For example, [2, 3] would result in

  • ary[:2]
  • ary[2:3]
  • ary[3:]

If an index exceeds the dimension of the array along axis 0, an error will be thrown.

Returns:
sub-arrays : list of ndarrays

A list of sub-arrays.

See also

split
Split an array into multiple sub-arrays of equal size.

Notes

This function differs from the original numpy.degrees in the following aspects:

  • Currently parameter indices_or_sections does not support ndarray, but supports scalar,

tuple and list. - In indices_or_sections, if an index exceeds the dimension of the array along axis 0, an error will be thrown.

Examples

>>> x = np.arange(16.0).reshape(4, 4)
>>> x
array([[  0.,   1.,   2.,   3.],
       [  4.,   5.,   6.,   7.],
       [  8.,   9.,  10.,  11.],
       [ 12.,  13.,  14.,  15.]])
>>> np.vsplit(x, 2)
[array([[0., 1., 2., 3.],
        [4., 5., 6., 7.]]), array([[ 8.,  9., 10., 11.],
        [12., 13., 14., 15.]])]
>>> # With a higher dimensional array the split is still along the first axis.
>>> x = np.arange(8.0).reshape(2, 2, 2)
>>> x
array([[[ 0.,  1.],
        [ 2.,  3.]],
       [[ 4.,  5.],
        [ 6.,  7.]]])
>>> np.vsplit(x, 2)
[array([[[0., 1.],
        [2., 3.]]]), array([[[4., 5.],
        [6., 7.]]])]