def _multi_take(self, tup):
<EOL>o = self.obj<EOL>d = {axis: self._get_listlike_indexer(key, axis)<EOL>for (key, axis) in zip(tup, o._AXIS_ORDERS)}<EOL>return o._reindex_with_indexers(d, copy=True, allow_dups=True)<EOL>
Create the indexers for the passed tuple of keys, and execute the take
operation. This allows the take operation to be executed all at once -
rather than once for each dimension - improving efficiency.

Parameters
----------
tup : tuple
    Tuple of indexers, one per axis

Returns
-------
values: same type as the object being indexed