Source code for pysensmcda.compromise.rank_position

# Copyright (C) 2024 Bartosz Paradowski, Jakub Więckowski

import numpy as np
from scipy.stats import rankdata
from ..validator import Validator
from ..utils import memory_guard

[docs] @memory_guard def rank_position(rankings: np.ndarray) -> np.ndarray: """ Calculates compromised ranking using rank position method. Parameters: ------------ rankings : ndarray Two-dimensional matrix containing different rankings in columns. Returns: --------- ndarray Vector including compromise ranking. Example: --------- >>> rankings = np.array([[3, 2, 3], >>> [4, 4, 4], >>> [2, 3, 2], >>> [1, 1, 1]]) >>> rank = rank_position_method(rankings) """ Validator.is_type_valid(rankings, np.ndarray, 'rankings') preference = 1 / (np.sum((1 / rankings), axis = 1)) return rankdata(preference)