# Indexing Multi-dimensional arrays in Python using NumPy

• Difficulty Level : Hard
• Last Updated : 05 Aug, 2021

NumPy is a general-purpose array-processing package. It provides a high-performance multidimensional array object and tools for working with these arrays. It is the fundamental package for scientific computing with Python. It contains various features.
Example:

## Python3

 `# numpy library imported``import` `numpy as np` `# creating single-dimensional array``arr_s ``=` `np.arrange(``5``)``print``(arr_s)`

Output:

`[0 1 2 3 4]`

arrange() method in numpy creates single dimension array of length 5. Single parameter inside the arrange() method acts as the end element for the range. arrange() also takes start and end arguments with steps.
Example:

## Python3

 `import` `numpy as np` `# here inside arrange method we``# provide start, end, step as``# arguments.``arr_b ``=` `np.arrange(``20``, ``30``, ``2``)` `# step argument helps in printing``# every said step and skipping the``# rest.``print``(arr_b)`

Output:

`[20 22 24 26 28]`

Indexing these arrays is simple. Every array element has a particular index associated with them. Indexing starts at 0 and goes on till the length of array-1. In the previous example, arr_b has 5 elements within itself. Accessing these elements can be done with:

`array_name[index_number]`

Example:

## Python3

 `import` `numpy as np` `# here inside arrange method we``# provide start, end, step as``# arguments.``arr_b ``=` `np.arrange(``20``, ``30``, ``2``)` `# step argument helps in printing``# every said step and skipping the``# rest.``print``(arr_b)`  `print``(arr_b[``2``])` `# Slicing operation from index``# 1 to 3``print``(arr_b[``1``:``4``])`

Output

```[20 22 24 26 28]
24
[22 24 26]```

For Multidimensional array you can use reshape() method along with arrange()

## Python3

 `import` `numpy as np` `arr_m ``=` `np.arrange(``12``).reshape(``6``, ``2``)``print``(arr_m)`

Output:

```[[ 0  1]
[ 2  3]
[ 4  5]
[ 6  7]
[ 8  9]
[10 11]]```

Inside reshape() the parameters should be the multiple of the arrange() parameter. In our previous example, we had 6 rows and 2 columns. You can specify another parameter whereby you define the dimension of the array. By default, it is an 2d array.
Example:

## Python3

 `import` `numpy as np` `arr_m ``=` `np.arrange(``12``).reshape(``2``, ``2``, ``3``)``print``(arr_m)`

Output

```[[[ 0  1  2]
[ 3  4  5]]

[[ 6  7  8]
[ 9 10 11]]]```

To index a multi-dimensional array you can index with slicing operation similar to a single dimension array.
Example:

## Python3

 `import` `numpy as np` `arr_m ``=` `np.arrange(``12``).reshape(``2``, ``2``, ``3``)` `# Indexing``print``(arr_m[``0``:``3``])``print``()``print``(arr_m[``1``:``5``:``2``,::``3``])`

Output:

```[[[ 0  1  2]
[ 3  4  5]]

[[ 6  7  8]
[ 9 10 11]]]

[[[6 7 8]]]```

My Personal Notes arrow_drop_up