Example of how to select in a matrix a given index and its neighbors using numpy in python:

### Create a matrix with numpy

Let's create a matrix of dimension (6,6):

`import numpy as np`

`A = np.arange(36)`

`A = A.reshape(6,6)`

`print(A)`

returns

`[[ 0 1 2 3 4 5]`

`[ 6 7 8 9 10 11]`

`[12 13 14 15 16 17]`

`[18 19 20 21 22 23]`

`[24 25 26 27 28 29]`

`[30 31 32 33 34 35]]`

### Select in a matrix a given index and its neighbors

Let's select for example the index (3,4):

`index = [3,4]`

the value associated with the above index is:

`print(A[3,4])`

`22`

To select first neighbors from this index, a solution is to do:

`num_neighbor = 1`

`left = max(0,index[0]-num_neighbor)`

`right = max(0,index[0]+num_neighbor+1)`

`bottom = max(0,index[1]-num_neighbor)`

`top = max(0,index[1]+num_neighbor+1)`

`sample = A[left:right,bottom:top]`

`print(sample)`

returns

`[[15 16 17]`

`[21 22 23]`

`[27 28 29]]`