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}