Return a human-readable representation of the Cannon label vector.
        
        label_vector should be [[(1,2), (2,1)], [(1,3)]] etc.

def _repr_label_vector(self, label_vector):
        """
        Return a human-readable representation of the Cannon label vector.
        
        label_vector should be [[(1,2), (2,1)], [(1,3)]] etc.

        """

        string = ["1"]
        for cross_terms in label_vector:
            sub_string = []
            for index, order in cross_terms:
                _ = self.grid_points.dtype.names[index]
                if order > 1:
                    sub_string.append("{0}^{1}".format(_, order))
                else:
                    sub_string.append(_)
            string.append(" * ".join(sub_string))
        return " + ".join(string)