code: def match(v1, v2, nomatch=-1, incomparables=None, start=0):
      
      # NOTE: This function gets called a lot. If it can
      # be optimised, it should.
      lookup = {}
      for i, x in enumerate(v2):
          if x not in lookup:
              lookup[x] = i
  
      if incomparables:
          skip = set(incomparables) if incomparables else set()
          lst = [lookup[x]+start
                 if x not in skip and x in lookup else nomatch
                 for x in v1]
      else:
          lst = [lookup[x]+start
                 if x in lookup else nomatch
                 for x in v1]
      return lst
docs: Return a vector of the positions of (first)
      matches of its first argument in its second.
  
      Parameters
      ----------
      v1: array-like
          the values to be matched
  
      v2: array-like
          the values to be matched against
  
      nomatch: int
          the value to be returned in the case when
          no match is found.
  
      incomparables: array-like
          a list of values that cannot be matched.
          Any value in v1 matching a value in this list
          is assigned the nomatch value.
      start: int
          type of indexing to use. Most likely 0 or 1