title: How to get the surrounding numbers of a specific number in the form of 3x3 matrix in numpy?
body: <p>I wrote a function to get the surrounding numbers of a number by passing their index as a parameter in the form of a 3X3 matrix. </p>
  
  <pre><code>import numpy as np
  ar = np.arange(0,120)
  ar = np.reshape(ar,(12,10))
  
  def get_surroundings(ar,i,j):
      if ((i&gt;0) &amp; (i&lt;ar.shape[0])) &amp; ((j&gt;0) &amp; (j&lt;ar.shape[1])):
          temp = np.array([[ar[i-1][j-1],ar[i-1][j],ar[i-1][j+1]],[ar[i][j-1],ar[i][j],ar[i][j+1]],[ar[i+1][j-1],ar[i+1][j],ar[i+1][j-1]]])
          return temp
  
  get_surroundings(ar,9,5)
  </code></pre>
  
  <p><code>ar</code> is a 12x10 matrix like below : </p>
  
  <pre><code>array([[  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,  36,  37,  38,  39],
     [ 40,  41,  42,  43,  44,  45,  46,  47,  48,  49],
     [ 50,  51,  52,  53,  54,  55,  56,  57,  58,  59],
     [ 60,  61,  62,  63,  64,  65,  66,  67,  68,  69],
     [ 70,  71,  72,  73,  74,  75,  76,  77,  78,  79],
     [ 80,  81,  82,  83,  84,  85,  86,  87,  88,  89],
     [ 90,  91,  92,  93,  94,  95,  96,  97,  98,  99],
     [100, 101, 102, 103, 104, 105, 106, 107, 108, 109],
     [110, 111, 112, 113, 114, 115, 116, 117, 118, 119]])
  </code></pre>
  
  <p></p>
  
  <p>I get the result from the function like below :</p>
  
  <pre><code> array([[ 84,  85,  86],
         [ 94,  95,  96],
         [104, 105, 104]])
  </code></pre>
  
  <p>Is there a numpy function to achieve the same?
  If i give (ar,0,0) then output should be </p>
  
  <pre><code>array([[ 0,  0,  0],
         [ 0,  10,  11],
         [0, 20, 21]])
  </code></pre>
  
  <p>Similarly if (ar,11,0) then output should be </p>
  
  <pre><code>array([[ 0, 100, 101],
         [ 0 , 110, 111],
         [ 0 , 0,0]])
  </code></pre>