code: def get_score_bj_fast(
      n_alpha: np.ndarray, no_records: np.ndarray, alpha: np.ndarray
  ) -> np.ndarray:
      """
      BerkJones
  
      :param n_alpha: Number of records less than alpha.
      :param no_records: Number of records.
      :param alpha: Alpha threshold.
      :return: Score.
      """
      score = np.zeros(alpha.shape[0])
      inds_tie = n_alpha == no_records
      inds_not_tie = np.logical_not(inds_tie)
      inds_pos = n_alpha > no_records * alpha
      inds_pos_not_tie = np.logical_and(inds_pos, inds_not_tie)
      score[inds_tie] = no_records[inds_tie] * np.log(
          np.true_divide(1, alpha[inds_tie])
      )
  
      factor1 = n_alpha[inds_pos_not_tie] * np.log(
          np.true_divide(
              n_alpha[inds_pos_not_tie],
              no_records[inds_pos_not_tie] * alpha[inds_pos_not_tie],
          )
      )
  
      factor2 = no_records[inds_pos_not_tie] - n_alpha[inds_pos_not_tie]
  
      factor3 = np.log(
          np.true_divide(
              no_records[inds_pos_not_tie] - n_alpha[inds_pos_not_tie],
              no_records[inds_pos_not_tie]
              * (1 - alpha[inds_pos_not_tie]),
          )
      )
  
      score[inds_pos_not_tie] = factor1 + factor2 * factor3
      return score
  
imports: import numpy
label_desc: Use image node_id 1 for calling the ScoringFunctions obj's underlying member method code with example usage: obj.get_score_bj_fast(n_alpha, no_records, alpha) and returns: score