Scikit-learn average_precision_score() vs. auc score of precision_recall_curve()
The metrics differ in the macro case because macro in scikit-learn ignores class imbalances. micro in scikit-learn looks at global rates. The data has class imbalances, thus the macro argument will return different values compared to micro.