title: Python type error: 'numpy.ndarray' object is not callable
body: <p>I'm defining a set of functions to convert from an Earth-centered reference frame to classical orbital elements. Here are my codes:</p>
  <pre><code>import numpy as np
  import matplotlib.pyplot as plt
  
  #converting r,v to orbital elements
  u = 3.986*10e14 #gravitational parameter for Earth
  list_r = [-2413.9, 6083.8, -1136.0]
  r = np.array(list_r)
  list_v= [-6.5461, -3.1365, -3.6385] 
  v = np.array(list_v)
  
  def h(r,v):
      return np.cross(r,v)
  
  
  list_k = [0,0,1]
  k = np.array(list)
  
  def n(k,h):
      return np.cross(k,h)
  def e_vec(v,r):
      vector = 1/u * (np.dot((np.linalg.norm(v))**2-u/np.linalg.norm(r),r)-np.dot(np.dot(r,v),v))
      return vector
  
  def p(h,u):
      return (np.linalg.norm(h))**2/u
          
  
  def a(p,e):
      return p/(1-np.linalg.norm(e_vec)**2)
  
  
  
  def i(h):
      
      return np.arccos(np.dot(k,h(r,v))/np.linalg.norm(h(r,v)))
     
  
  list_I = [1,0,0]
  I = np.array(list_I)
  
  def ohm(I,n):
  
      nI = np.dot(n(h),I)
      ohm = np.acos(nI/n)
      return ohm
      
  def w(n,e):
      w = np.arccos(np.dot(n,e)/(np.linalg.norm(n)*np.linalg.norm(e)))
      return w
  
  def f(e,r):
      f = np.arccos(np.dot(e_vec(v,r),r)/(np.linalg.norm(e_vec(v,r))*np.linalg.norm(r)))
      return f
  print(h(r,v))
  print(e_vec(v,r))
  print(p(h(r,v),u))
  print(i(h(r,v)))
  print(ohm(I,n))
  print(w)
  print(f)
  </code></pre>
  <p>I'm getting this error : TypeError: 'numpy.ndarray' object is not callable, for the function i(h). I don't know how I should fix this.</p>