matrices
This module contains all functions related to matrices.
- class ColumnView(matrix)
Bases:
Mapping
[Any
,CommensurableValues
[S
]],Generic
[S
]This class defines a view of a value matrix per column.
- Parameters
matrix (IValueMatrix[S]) –
- get(k[, d]) D[k] if k in D, else d. d defaults to None.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- values() an object providing a view on D's values
- class IAdjacencyMatrix(data, vertices=None, **kwargs)
Bases:
IMatrix
,ABC
This class implements graphs as an adjacency matrix.
The adjacency matrix is represented internally by a
pandas.DataFrame
with vertices as the indexes and columns.- Parameters
data – adjacency matrix in an array-like or dict-structure
vertices (Union[List, None]) –
- Raises
KeyError –
if columns and rows have different sets of labels
if some vertices are duplicated
Note
the cells of the matrix can be of any type (not just numerics)
- property cell: Mapping[Tuple[Any, Any], Any]
Return matrix cell accessor.
Note
actually returns
DataFrame.at()
fromdata
- property columns: List
Return column labels.
- property rows: List
Return row labels.
- property vertices: List
Return list of vertices
- class IMatrix(data, **kwargs)
Bases:
ABC
This class implements a wrapper on
pandas.DataFrame
.It adds a method to check if two such objects are equals. It is meant to be use for any class that needs a DataFrame as its internal data representation in this package.
- Parameters
data – dataframe containing the matrix
- Raises
KeyError –
if some indexes are duplicated
if some columns are duplicated
- property cell: Mapping[Tuple[Any, Any], Any]
Return matrix cell accessor.
Note
actually returns
DataFrame.at()
fromdata
- property columns: List
Return column labels.
- property rows: List
Return row labels.
- class IValueMatrix(data, scales=None, stype=None, **kwargs)
Bases:
IMatrix
,Generic
[S
],ABC
This class defines a matrix with associated scales (one per column).
- Parameters
data –
scales (Union[S, Mapping[Any, S], None]) – data scale(s) (one per column or one shared, will be inferred from data if absent using
Scale.fit()
)stype (Union[Type[S], None]) – scales type used
- Raises
KeyError –
if some indexes are duplicated
if some columns are duplicated
TypeError – if stype and scales types mismatch
Todo
remove this class completely, put its code in current subclasses
- property bounds: Mapping[Any, S]
Return scales inferred from values.
- property cell: Mapping[Tuple[Any, Any], Any]
Return matrix cell accessor.
Note
actually returns
DataFrame.at()
fromdata
- property columns: List
Return column labels.
- property columns_values: Mapping[Any, CommensurableValues[S]]
Iterator on the table criteria values
- copy()
Return a copy of the object
- Return type
Self
- property is_numeric: bool
Check whether table is numeric.
- Returns
- Return type
bool
- property is_ordinal: bool
Check whether scales are all ordinal.
- Returns
- property is_within_scales: bool
Check whether all values are within their respective scales.
- Returns
- property rows: List
Return row labels.
- sum(axis: None = None) float
- sum(axis: Literal[0, 1]) CommensurableValues[QuantitativeScale]
Return the sum of the data (all table, row or column-wise).
- Parameters
axis –
0: column-wise sum
1: row-wise sum
None
: complete sum
- Returns
Warning
it will raise a
TypeError
if data contains numeric and non-numeric values
- abstract property to_numeric: IValueMatrix[QuantitativeScale]
Return numeric conversion of ordinal values.
- Raises
TypeError – if
scales
are not ordinal
- property union_bounds: S
Return one scale for whole matrix inferred from values.
- property within_scales: DataFrame
Return a dataframe indicating which values are within their respective scale.
- Returns
- OutrankingMatrix
This type alias represents an outranking matrix
- class PartialColumnView(matrix)
Bases:
Mapping
[Any
,PerformanceTable
[S
]],Generic
[S
]This class defines a view of a partial value matrix per column.
- Parameters
matrix (PartialValueMatrix[S]) –
- get(k[, d]) D[k] if k in D, else d. d defaults to None.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- values() an object providing a view on D's values
- class PartialCriterionView(matrix)
Bases:
Mapping
[Any
,AdjacencyValueMatrix[S]
],Generic
[S
]This class defines a view of a partial value matrix per criterion.
- Parameters
matrix (PartialValueMatrix[S]) –
- get(k[, d]) D[k] if k in D, else d. d defaults to None.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- values() an object providing a view on D's values
- class PartialRowView(matrix)
Bases:
Mapping
[Any
,PerformanceTable
[S
]],Generic
[S
]This class defines a view of a partial value matrix per row.
- Parameters
matrix (PartialValueMatrix[S]) –
- get(k[, d]) D[k] if k in D, else d. d defaults to None.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- values() an object providing a view on D's values
- class RowView(matrix)
Bases:
Mapping
[Any
,Values
[S
]],Generic
[S
]This class defines a view of a value matrix per row.
- Parameters
matrix (IValueMatrix[S]) –
- get(k[, d]) D[k] if k in D, else d. d defaults to None.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- values() an object providing a view on D's values
- class VertexColumnView(matrix)
Bases:
ColumnView
[S
],Generic
[S
]This class defines a view of an adjacency value matrix per column.
- Parameters
matrix (AdjacencyValueMatrix[S]) –
- get(k[, d]) D[k] if k in D, else d. d defaults to None.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- values() an object providing a view on D's values
- class VertexRowView(matrix)
Bases:
Mapping
[Any
,CommensurableValues
[S
]],Generic
[S
]This class defines a view of an adjacency value matrix per row.
- Parameters
matrix (AdjacencyValueMatrix[S]) –
- get(k[, d]) D[k] if k in D, else d. d defaults to None.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- values() an object providing a view on D's values
- create_outranking_matrix(data, vertices=None, **kwargs)
Create an outranking matrix.
- Parameters
data – adjacency matrix in an array-like or dict-structure
vertices (Optional[List]) –
- Raises
KeyError –
if columns and rows have different sets of labels
if some vertices are duplicated
TypeError – if data is not binary
- Return type
Note
This function is just an easier way to create
AdjacencyValueMatrix
with binary scale
- dataframe_equals(df1, df2)
Check if two dataframes have the same values.
It will realign the indexes and columns if they are ordered differently.
- Parameters
df1 (DataFrame) –
df2 (DataFrame) –
- Returns
- Return type
bool
Todo
integrate into
mcda/core.adjacency_matrix.Matrix
- requires_graphviz(func)
Wrap a class or function that requires graphviz to function.
- Parameters
obj – either a class or function
- Raises
ImportError – if graphviz is not installed
- Returns
wrapped class or function