class_docstr: Orchestrates a concatenation operation for BlockManagers
class_docstr_tok: ["Orchestrates","a","concatenation","operation","for","BlockManagers"]
code: def _get_new_axes(self):
      ndim = self._get_result_dim()
      new_axes = [None] * ndim
  
      if self.join_axes is None:
          for i in range(ndim):
              if i == self.axis:
                  continue
              new_axes[i] = self._get_comb_axis(i)
      else:
          if len(self.join_axes) != ndim - 1:
              raise AssertionError(
                  "length of join_axes must be equal "
                  "to {length}".format(length=ndim - 1)
              )
  
          # ufff...
          indices = compat.lrange(ndim)
          indices.remove(self.axis)
  
          for i, ax in zip(indices, self.join_axes):
              new_axes[i] = ax
  
      new_axes[self.axis] = self._get_concat_axis()
      return new_axes
  
imports: import numpy
  import pandas.core.dtypes.concat
  from pandas import DataFrame, Index, MultiIndex, Series, compat
  from pandas.core import common
  from pandas.core.arrays.categorical import _factorize_from_iterable, _factorize_from_iterables
  from pandas.core.generic import NDFrame
  from pandas.core.index import _all_indexes_same, _get_consensus_names, _get_objs_combined_axis, ensure_index
  import pandas.core.indexes.base
  from pandas.core.internals import concatenate_block_managers
label_desc: Use image node_id 4 for calling the _Concatenator obj's underlying member method code with example usage: obj._get_new_axes() and returns: new_axes