# numpy.split | Split an array into multiple sub-array in Python

In this article, we will learn how to split an array into multiple subarrays in Python. So, for dividing an array into multiple subarrays, I am going to use numpy.split() function.

## Split an array into multiple sub-arrays in Python

To understand numpy.split() function in Python we have to see the syntax of this function.
The syntax of this function is :

`numpy.split(a,sections,axis)`

A: Input array to be divided into multiple sub-arrays.

Sections: Sections or indices can be an integer or a 1-D array.

• Integer: If the sections or indices is an integer (say n), then the input array will be divided into n equal arrays. But If such a split is not possible then the code will throw an error.
For example, If an input array contains 9 elements, np.split(a,3) split the given array into 3 sub-arrays containing 3 elements each.
• A 1-D array: If the sections or indices are a 1-D array then elements of this array should be in sorted order.
For example,  np.split(a,[2,4,7]) split the array a into- a[0,1] , a[2,3] ,a[4,5,6] ,a[7,8] .

Axis: The axis along which to split. The default value of the axis is 0. This axis can be 0,1 or 2.

• 0 represents the 1st axis or the horizontal axis. This split the array horizontally. Instead of using axis 0 we can also write np.hsplit       (a,  sections).
• 1 represents the 2nd axis or the vertical axis. This split the array vertically. Instead of using axis 1, we can also write np.vsplit (a, sections).
• 2 represents the 3rd axis. This split the array into multiple sub-arrays along the depth. Instead of using axis 2, we can also write  np.dsplit (a, sections).

#### Examples

```import numpy as np
a=np.arange(9)
print("1st array is\n",a)
print("2nd array is\n",np.split(a,[3,7])) #default value 0```

In the above-given code, np.split(a,[3,4,7]) split the array a into 3 parts. One is a[:3],2nd is a[3:7] and 3rd is a[7:] and if you do not specify the value of the axis default value 0 will be set.

If you run the code output will be:

```Output:
1st array is
[0 1 2 3 4 5 6 7 8]
2nd array is
[array([0, 1, 2]), array([3, 4, 5, 6]), array([7, 8])]

```
```import numpy as np
A=np.arange(27).reshape(3,3,3)
a=np.split(A,3,0)    #split row-wise
print("1st array-\n",a)
b=np.split(A,3,1)  #split column-wise
print("2nd array-\n",b)
c=np.split(A,3,2)  #split depth-wise
print("3rd array-\n",c)
```

Here, we have split the array row-wise,column-wise and depth-wise by writing the value of the axis 0,1 and 2 respectively.

The output will be like:

```Ouput:
1st array-
[array([[[0, 1, 2],[3, 4, 5],[6, 7, 8]]])
,array([[[ 9, 10, 11],[12, 13, 14],[15, 16, 17]]])
,array([[[18, 19, 20],[21, 22, 23],[24, 25, 26]]])]
2nd array-
[array([[[ 0,  1,  2]],[[ 9, 10, 11]],[[18, 19, 20]]])
,array([[[ 3,  4,  5]],[[12, 13, 14]],[[21, 22, 23]]])
,array([[[ 6,  7,  8]],[[15, 16, 17]],[[24, 25, 26]]])]

3rd array-
[array([[[ 0],
[ 3],
[ 6]],

[[ 9],
,
],

[,
,
]]), array([[[ 1],
[ 4],
[ 7]],

[,
,
],```
```       [,
,
]]), array([[[ 2],
[ 5],
[ 8]],

[,
,
],

[,
,
]])]```