def take_nd(self, indexer, axis=<NUM_LIT:0>, new_mgr_locs=None, fill_tuple=None):
if fill_tuple is None:<EOL><INDENT>fill_value = None<EOL><DEDENT>else:<EOL><INDENT>fill_value = fill_tuple[<NUM_LIT:0>]<EOL><DEDENT>new_values = self.values.take(indexer, fill_value=fill_value,<EOL>allow_fill=True)<EOL>if self.ndim == <NUM_LIT:1> and new_mgr_locs is None:<EOL><INDENT>new_mgr_locs = [<NUM_LIT:0>]<EOL><DEDENT>else:<EOL><INDENT>if new_mgr_locs is None:<EOL><INDENT>new_mgr_locs = self.mgr_locs<EOL><DEDENT><DEDENT>return self.make_block_same_class(new_values, new_mgr_locs)<EOL>
Take values according to indexer and return them as a block.