code: def encode_many(chord_labels, reduce_extended_chords=False):
      
      num_items = len(chord_labels)
      roots, basses = np.zeros([2, num_items], dtype=np.int)
      semitones = np.zeros([num_items, 12], dtype=np.int)
      local_cache = dict()
      for i, label in enumerate(chord_labels):
          result = local_cache.get(label, None)
          if result is None:
              result = encode(label, reduce_extended_chords)
              local_cache[label] = result
          roots[i], semitones[i], basses[i] = result
      return roots, semitones, basses
docs: Translate a set of chord labels to numerical representations for sane
      evaluation.
  
      Parameters
      ----------
      chord_labels : list
          Set of chord labels to encode.
      reduce_extended_chords : bool
          Whether to map the upper voicings of extended chords (9's, 11's, 13's)
          to semitone extensions.
          (Default value = False)
  
      Returns
      -------
      root_number : np.ndarray, dtype=int
          Absolute semitone of the chord's root.
      interval_bitmap : np.ndarray, dtype=int
          12-dim vector of relative semitones in the given chord quality.
      bass_number : np.ndarray, dtype=int
          Relative semitones of the chord's bass notes.