Quick Start

Installation

Using the pip

1$ pip install hierarchiapy

Using the Git & Pip

1$ !pip install git+https://github.com/nusretipek/HierarchiaPy.git

Hierarchia Class

Examples: Pandas DataFrame Initialization

Note

Initialization via Pandas Dataframe - Required to have two more arguments: Winner and Loser Column names

Intialization with variable list of arguments

 1from HierarchiaPy import Hierarchia
 2import pandas as pd
 3
 4df = pd.DataFrame({'winner': ['c', 'a', 'a', 'b', 'd', 'b', 'a', 'c', 'b'],
 5                   'loser': ['a', 'b', 'b', 'a', 'c', 'd', 'b', 'b', 'a']})
 6
 7hier_df = Hierarchia(df, 'winner', 'loser')
 8
 9print(hier_df.mat)
10print(hier_df.indices)

Result:

[[0 3 0 0]
 [2 0 0 1]
 [1 1 0 0]
 [0 0 1 0]]
['a', 'b', 'c', 'd']

Intialization with keyword list of arguments

 1from HierarchiaPy import Hierarchia
 2import pandas as pd
 3
 4df = pd.DataFrame({'winner': ['c', 'a', 'a', 'b', 'd', 'b', 'a', 'c', 'b'],
 5                   'loser': ['a', 'b', 'b', 'a', 'c', 'd', 'b', 'b', 'a']})
 6
 7hier_df = Hierarchia(df, winner_col='winner', loser_col='loser')
 8
 9print(hier_df.mat)
10print(hier_df.indices)

Result:

[[0 3 0 0]
 [2 0 0 1]
 [1 1 0 0]
 [0 0 1 0]]
['a', 'b', 'c', 'd']

Examples: 2D NumPy (Matrix) Initialization

Note

Initialization via 2D Numpy - Required to be symmetric (n x n)

Intialization with only NumPy 2D array

 1from HierarchiaPy import Hierarchia
 2import numpy as np
 3
 4mat = np.array([[0, 6, 9, 8, 5],
 5                [0, 0, 4, 6, 0],
 6                [0, 2, 0, 4, 7],
 7                [1, 0, 5, 0, 3],
 8                [0, 0, 2, 3, 0]], dtype='float32')
 9
10hier_mat = Hierarchia(mat)
11
12print(hier_mat.mat)
13print(hier_mat.indices)

Result:

[[0. 6. 9. 8. 5.]
 [0. 0. 4. 6. 0.]
 [0. 2. 0. 4. 7.]
 [1. 0. 5. 0. 3.]
 [0. 0. 2. 3. 0.]]
[0 1 2 3 4]

Intialization with NumPy 2D array and name sequence

 1from HierarchiaPy import Hierarchia
 2import numpy as np
 3
 4mat = np.array([[0, 6, 9, 8, 5],
 5                [0, 0, 4, 6, 0],
 6                [0, 2, 0, 4, 7],
 7                [1, 0, 5, 0, 3],
 8                [0, 0, 2, 3, 0]], dtype='float32')
 9
10hier_mat = Hierarchia(mat, name_seq=['a', 'b', 'c', 'd', 'e'])
11
12print(hier_mat.mat)
13print(hier_mat.indices)

Result:

[[0. 6. 9. 8. 5.]
 [0. 0. 4. 6. 0.]
 [0. 2. 0. 4. 7.]
 [1. 0. 5. 0. 3.]
 [0. 0. 2. 3. 0.]]
['a', 'b', 'c', 'd', 'e']

Basic Usage

See methods section for the comprehenssive list of available methods

 1from HierarchiaPy import Hierarchia
 2import numpy as np
 3
 4mat = np.array([[0, 6, 9, 8, 5],
 5                [0, 0, 4, 6, 0],
 6                [0, 2, 0, 4, 7],
 7                [1, 0, 5, 0, 3],
 8                [0, 0, 2, 3, 0]], dtype='float32')
 9
10hier_mat = Hierarchia(mat, name_seq=['a', 'b', 'c', 'd', 'e'])
11
12davids_scores = hier_mat.davids_score()
13print(davids_scores)

Result:

{'a': 8.4444, 'b': 1.6111, 'c': -2.3333, 'd': -3.6667, 'e': -4.0556}