title: Most Efficient Way to Create a Numpy Array Based on Values in Multiple Cells of Another Array
body: <p>I have an application where I have to process 1000's of 2D arrays.  The result of the processed array is based on half of a Kings Move neighborhood in the original array.  I'm trying to avoid loops if I can due to speed considerations.  So, here is an example Numpy Array:</p>
  
  <pre><code>array([[ 0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.],
         [ 0.,  0.,  0.,  0.,  1.,  1.,  1.,  0.,  0.,  0.,  0.],
         [ 0.,  0.,  0.,  1.,  5.,  5.,  5.,  5.,  0.,  0.,  0.],
         [ 0.,  1.,  5.,  5.,  1.,  1.,  1.,  1.,  1.,  0.,  0.],
         [ 5.,  5.,  5.,  5.,  1.,  5.,  1.,  1.,  1.,  1.,  0.],
         [ 1.,  1.,  1.,  5.,  1.,  1.,  5.,  5.,  1.,  1.,  0.],
         [ 5.,  1.,  5.,  1.,  1.,  5.,  5.,  5.,  1.,  5.,  0.],
         [ 0.,  5.,  1.,  5.,  1.,  1.,  1.,  1.,  1.,  0.,  0.],
         [ 0.,  0.,  1.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  0.],
         [ 0.,  0.,  0.,  1.,  5.,  5.,  5.,  0.,  0.,  0.,  0.]])
  </code></pre>
  
  <p>At each element, I want the sum of the cell right above it, the upper right diagonal element, the cell to the immediate right and the lower diagonal.  So, using the element at [6][0] I would want to sum 1 + 1 + 1 + 5.</p>
  
  <p>Of course, I also have to handle the edge cases where one of the 4 cells is not there.  I have started with the padded zeros on top and far right to manage some of that but I'm stuck right now.  Any advice would be much appreciated!</p>