piso.accessor.ArrayAccessor.adjacency_matrix#
- ArrayAccessor.adjacency_matrix(*interval_arrays, edges='intersect', include_index=True)#
Returns a 2D array (or dataframe) of boolean values indicating edges between nodes in a graph.
The set of nodes correspond to intervals and the edges are defined by the relationship defined by the edges parameter.
Note that the diagonal is defined with False values by default.
- Parameters
- edges{“intersect”, “disjoint”}, default “intersect”
Defines the relationship that edges between nodes represent.
- include_indexbool, default True
If True then a
pandas.DataFrame
, indexed by the intervals, is returned. If False then anumpy.ndarray
is returned.
- Returns
pandas.DataFrame
ornumpy.ndarray
Boolean valued, symmetrical, with False along diagonal.
Examples
>>> import pandas as pd >>> import piso >>> piso.register_accessors()
>>> arr = pd.arrays.IntervalArray.from_tuples( ... [(0,4), (3,6), (5, 7), (8,9), (9,10)], ... closed="both", ... )
>>> arr.piso.adjacency_matrix() [0, 4] [3, 6] [5, 7] [8, 9] [9, 10] [0, 4] False True False False False [3, 6] True False True False False [5, 7] False True False False False [8, 9] False False False False True [9, 10] False False False True False
>>> arr.piso.adjacency_matrix(arr, include_index=False) array([[False, True, False, False, False], [ True, False, True, False, False], [False, True, False, False, False], [False, False, False, False, True], [False, False, False, True, False]])
>>> arr.piso.adjacency_matrix(arr, edges="disjoint") [0, 4] [3, 6] [5, 7] [8, 9] [9, 10] [0, 4] False False True True True [3, 6] False False False True True [5, 7] True False False True True [8, 9] True True True False False [9, 10] True True True False False