docs: def zip_ll_row(params, data_row):
      """
      Returns the negative log-likelihood of a row given ZIP data.
  
      Args:
          params (list): [lambda zero-inf]
          data_row (array): 1d array
  
      Returns:
          negative log-likelihood
      """
      l = params[0]
      pi = params[1]
      d0 = (data_row==0)
      likelihood = d0*pi + (1-pi)*poisson.pmf(data_row, l)
      return -np.log(likelihood+eps).sum()