docs: def normalize(self, inplace=True):
          """
          Normalizes the cpd table.
  
          Parameters
          ----------
          inplace: boolean
              If inplace=True it will modify the CPD itself, else would return
              a new CPD
  
          Examples
          --------
          >>> from pgmpy.factors.discrete import TabularCPD
          >>> cpd_table = TabularCPD('grade', 2,
          ...                        [[0.7, 0.2, 0.6, 0.2],[0.4, 0.4, 0.4, 0.8]],
          ...                        ['intel', 'diff'], [2, 2])
          >>> cpd_table.normalize()
          >>> cpd_table.get_values()
          array([[ 0.63636364,  0.33333333,  0.6       ,  0.2       ],
                 [ 0.36363636,  0.66666667,  0.4       ,  0.8       ]])
          """
          tabular_cpd = self if inplace else self.copy()
          cpd = tabular_cpd.get_values()
          tabular_cpd.values = (cpd / cpd.sum(axis=0)).reshape(tabular_cpd.cardinality)
          if not inplace:
              return tabular_cpd