'Take elements from an array along an axis.
Arguments:
indices (Tensor, numpy ndarray): indicies of elements to select
axis (int): axis across which to select the values
out (Tensor): Output Tensor to fill with selected values'

def take(self, indices, axis, out=None):

    if (axis == 1):
        view = self.__getitem__((_none_slice, indices))
    else:
        view = self.__getitem__((indices, _none_slice))
    if out:
        return out._assign(view)
    return view
