title: TypeError: 'function' object has no attribute '__getitem__'
body: <p>Writing some code in python to evaluate a basic function. I've got a 2d array with some values and I want to apply the function to each of those values and get a new 2-d array:</p>
  
  <pre><code>import numpy as N
  def makeGrid(dim):
      ''' Function to return a grid of distances from the centre of an array.
      This version uses loops to fill the array and is thus slow.'''
      tabx = N.arange(dim) - float(dim/2.0) + 0.5
      taby = N.arange(dim) - float(dim/2.0) + 0.5
      grid = N.zeros((dim,dim), dtype='float')
      for y in range(dim):
          for x in range(dim):
              grid[y,x] = N.sqrt(tabx[x]**2 + taby[y]**2)
      return grid
  
  import math
  
  def BigGrid(dim):
      l= float(raw_input('Enter a value for lambda: '))
      p= float(raw_input('Enter a value for phi: '))
      a = makeGrid 
      b= N.zeros ((10,10),dtype=float) #Create an array to take the returned values
      for i in range(10):
          for j in range (10):
              b[i][j] = a[i][j]*l*p
      return b
  
  
  if __name__ == "__main__":
      ''' Module test code '''
      size = 10 #Dimension of the array
      newGrid = BigGrid(size)
      newGrid = N.round(newGrid, decimals=2)
      print newGrid
  </code></pre>
  
  <p>But all i get is the error message </p>
  
  <pre><code>Traceback (most recent call last):
    File "sim.py", line 31, in &lt;module&gt;
      newGrid = BigGrid(size)
    File "sim.py", line 24, in BigGrid
      b[i][j] = a[i][j]*l*p
  TypeError: 'function' object has no attribute '__getitem__'
  </code></pre>
  
  <p>Please help.</p>