code: def fit(self, linear_predictor, event, time):
          
          risk_score = numpy.exp(linear_predictor)
          order = numpy.argsort(time, kind="mergesort")
          risk_score = risk_score[order]
          uniq_times, n_events, n_at_risk = _compute_counts(event, time, order)
  
          divisor = numpy.empty(n_at_risk.shape, dtype=numpy.float_)
          value = numpy.sum(risk_score)
          divisor[0] = value
          k = 0
          for i in range(1, len(n_at_risk)):
              d = n_at_risk[i - 1] - n_at_risk[i]
              value -= risk_score[k:(k + d)].sum()
              k += d
              divisor[i] = value
  
          assert k == n_at_risk[0] - n_at_risk[-1]
  
          y = numpy.cumsum(n_events / divisor)
          self.cum_baseline_hazard_ = StepFunction(uniq_times, y)
          self.baseline_survival_ = StepFunction(self.cum_baseline_hazard_.x,
                                                 numpy.exp(- self.cum_baseline_hazard_.y))
          return self
docs: Compute baseline cumulative hazard function.
  
          Parameters
          ----------
          linear_predictor : array-like, shape = (n_samples,)
              Linear predictor of risk: `X @ coef`.
  
          event : array-like, shape = (n_samples,)
              Contains binary event indicators.
  
          time : array-like, shape = (n_samples,)
              Contains event/censoring times.
  
          Returns
          -------
          self