Q:

How to get the only the scores that we need in classification report in sklearn?

I am using sklearn cross_val_score to get my results as follows.
import numpy as np
my_results = cross_val_score(clf, X, y, cv=10, scoring = 'accuracy')
print(np.mean(my_results))

So, this gives me the accuracy of my cross validation. To get my other scores I have to perform the classification again to get the results.
precision = cross_val_score(clf, X, y, cv=k_fold, scoring = 'precision_weighted')
#print(precision.mean())
recall = cross_val_score(clf, X, y, cv=k_fold, scoring = 'recall_weighted')
#print(recall.mean())
f1 = cross_val_score(clf, X, y, cv=k_fold, scoring = 'f1_weighted')
#print(f1.mean())

I am only interested in the accuracy, weighted average precision, weighted average recall, weighted avareage f-measure and auc and want to get these scores by only performing cross_val_score one time.
I came accross classification_report of sklearn: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html.
However, it does not support cross_val_score. I am wondering if there is a way to do this in sklearn.
I am happy to provide more details if needed.
EDIT:
I tried to do this as suggested by @t_e_o. However, the results it produced is wrong. For instance consider the iris dataset.
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data[:, :2]  # we only take the first two features.
y = iris.target

from sklearn.ensemble import RandomForestClassifier
clf=RandomForestClassifier(random_state = 0, class_weight="balanced")

from sklearn.model_selection cross_val_score, cross_validate
cross_val_score(clf, X, y, cv=10, scoring = 'accuracy')
cross_validate(clf, X, y, cv=10, scoring = ('accuracy'))

The results I got are as follows.
#cross_val_score
array([0.53333333, 0.73333333, 0.66666667, 0.8       , 0.73333333,
       0.6       , 0.86666667, 0.86666667, 0.6       , 0.8       ])
#cross_validate
{'fit_time': array([0.01695228, 0.01396275, 0.01296329, 0.01496124, 0.0149579 ,
        0.01097107, 0.01395988, 0.01495957, 0.01396394, 0.0149579 ]),
 'score_time': array([0.00199723, 0.00199652, 0.00199461, 0.00199294, 0.00199652,
        0.00199389, 0.00199485, 0.00199366, 0.00099611, 0.00099897]),
 'test_score': array([0.53333333, 0.73333333, 0.66666667, 0.8       , 0.73333333,
        0.6       , 0.86666667, 0.86666667, 0.6       , 0.8       ]),
 'train_score': array([0.94074074, 0.91851852, 0.92592593, 0.93333333, 0.91851852,
        0.91851852, 0.91111111, 0.8962963 , 0.91851852, 0.91851852])}

A:

Have you heard of the cross_validate function? It might be the right option for you, so you can calculate multiple values. Example:
>>> scores = cross_validate(lasso, X, y, cv=3,
     ...                         scoring=('r2', 'neg_mean_squared_error'),
      ...                         return_train_score=True)
>>> print(scores['test_neg_mean_squared_error'])
    [-3635.5... -3573.3... -6114.7...]
>>> print(scores['train_r2'])
    [0.28010158 0.39088426 0.22784852]

https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_validate.html#sklearn.model_selection.cross_validate
I hope it is a good solution for you!

