code: def _fill_with_zeros(partials, rows, zero=None):
      
      assert len(rows) > 0
      if not _is_non_string_iterable(partials):
          # Convert partials to tuple for comparison against row slice later
          partials = [(partial,) for partial in partials]
  
      # Construct mapping of partials to values in rows
      mapping = {}
      for row in rows:
          mapping[tuple(row[:-1])] = row[-1]
  
      if zero is None:
          # Try to infer zero from given row values.
          array = np.array(tuple(mapping.values()))
          if len(array.shape) == 1:
              zero = array.dtype.type()
      return np.array([mapping.get(partial, zero) for partial in partials])
docs: Find and return values from rows for all partials. In cases where no
      row matches a partial, zero is assumed as value. For a row, the first
      (n-1) fields are assumed to be the partial, and the last field,
      the value, where n is the total number of fields in each row. It is
      assumed that there is a unique row for each partial.
      partials -- single field values or tuples of field values
      rows -- table rows
      zero -- value used when no rows match a particular partial