code: def _get_take_nd_function(
      ndim, arr_dtype, out_dtype, axis=0, mask_info=None
  ):
      if ndim <= 2:
          tup = (arr_dtype.name, out_dtype.name)
          if ndim == 1:
              func = _take_1d_dict.get(tup, None)
          elif ndim == 2:
              if axis == 0:
                  func = _take_2d_axis0_dict.get(tup, None)
              else:
                  func = _take_2d_axis1_dict.get(tup, None)
          if func is not None:
              return func
  
          tup = (out_dtype.name, out_dtype.name)
          if ndim == 1:
              func = _take_1d_dict.get(tup, None)
          elif ndim == 2:
              if axis == 0:
                  func = _take_2d_axis0_dict.get(tup, None)
              else:
                  func = _take_2d_axis1_dict.get(tup, None)
          if func is not None:
              func = _convert_wrapper(func, out_dtype)
              return func
  
      def func(arr, indexer, out, fill_value=np.nan):
          indexer = ensure_int64(indexer)
          _take_nd_object(
              arr,
              indexer,
              out,
              axis=axis,
              fill_value=fill_value,
              mask_info=mask_info,
          )
  
      return func
  
imports: from __future__ import division
  from textwrap import dedent
  from warnings import catch_warnings, simplefilter, warn
  import numpy
  from pandas._libs import algos, hashtable, lib
  from pandas._libs.tslib import iNaT
  from pandas.util._decorators import Appender, Substitution, deprecate_kwarg
  from pandas.core.dtypes.cast import construct_1d_object_array_from_listlike, maybe_promote
  from pandas.core.dtypes.common import ensure_float64, ensure_int64, ensure_object, ensure_platform_int, ensure_uint64, is_array_like, is_bool_dtype, is_categorical_dtype, is_complex_dtype, is_datetime64_any_dtype, is_datetime64tz_dtype, is_datetimelike, is_extension_array_dtype, is_float_dtype, is_integer_dtype, is_interval_dtype, is_list_like, is_numeric_dtype, is_object_dtype, is_period_dtype, is_scalar, is_signed_integer_dtype, is_sparse, is_timedelta64_dtype, is_unsigned_integer_dtype, needs_i8_conversion
  from pandas.core.dtypes.generic import ABCIndex, ABCIndexClass, ABCSeries
  from pandas.core.dtypes.missing import isna, na_value_for_dtype
  from pandas.core import common
label_desc: Use image node_id 22 for calling a global function with example usage: _get_take_nd_function(ndim, arr_dtype, out_dtype, axis, mask_info) and returns: func, func, func