All problems
MediumMetricsv2026-06-29

Metrics ยท Medium

Mean Average Precision

Average Precision over every relevant item in the ranked list.

Task

Implement mean_average_precision(labels: list[int], scores: list[float]) -> float. Rank binary relevance labels by descending score, compute precision at every relevant result, and return the mean of those precision values.

Requirements

  • Labels are binary, where 1 means relevant.
  • Preserve original input order when scores tie.
  • For every relevant item in ranked order, compute precision through that item's rank.
  • Return the average of those relevant-item precision values.
  • Return 0.0 when there are no relevant examples or when the input is empty.
  • Do not apply a cutoff; evaluate the full ranked list.

Example

labels = [1, 0, 1, 1]
scores = [0.9, 0.8, 0.7, 0.6]

mean_average_precision(labels, scores)
# 0.8055555556
solution.pySign in to save
Public tests run locally in your browser.
Run your code to see public test results.