# Utility¶

## Transformations¶

graspy.utils.pass_to_ranks(graph, method='zero-boost')[source]

Rescales edge weights of an adjacency matrix based on their relative rank in the graph.

Parameters: graph: Adjacency matrix method: {'zero-boost' (default), 'simple-all', 'simple-nonzero'} string, optional 'zero-boost' preserves the edge weight for all 0s, but ranks the other edges as if the ranks of all 0 edges has been assigned. If there are 10 0-valued edges, the lowest non-zero edge gets weight 11 / (number of possible edges). Ties settled by the average of the weight that those edges would have received. Number of possible edges is determined by the type of graph (loopless or looped, directed or undirected). 'simple-all' assigns ranks to all non-zero edges, settling ties using the average. Ranks are then scaled by $$\frac{2 rank(\text{non-zero edges})}{n^2 + 1}$$ where n is the number of nodes 'simple-nonzero' same as simple-all, but ranks are scaled by $$\frac{2 rank(\text{non-zero edges})}{\text{total non-zero edges} + 1}$$ graph: numpy.ndarray, shape(n_vertices, n_vertices) Adjacency matrix of graph after being passed to ranks

scipy.stats.rankdata

graspy.utils.to_laplace(graph, form='DAD')[source]

A function to convert graph adjacency matrix to graph laplacian.

Currently supports I-DAD and DAD laplacians, where D is the diagonal matrix of degrees of each node raised to the -1/2 power, I is the identity matrix, and A is the adjacency matrix

Parameters: graph: object Either array-like, (n_vertices, n_vertices) numpy array, or an object of type networkx.Graph. form: {'I-DAD' (default), 'DAD'}, string, optional 'I-DAD' Computes $$L = I - D*A*D$$ 'DAD' Computes $$L = D*A*D$$ L: numpy.ndarray 2D (n_vertices, n_vertices) array representing graph laplacian of specified form

## Helper Functions¶

graspy.utils.import_graph(graph)[source]
A function for reading a graph and returning a shared data type. Makes IO cleaner and easier.
Parameters: graph: object Either array-like, shape (n_vertices, n_vertices) numpy array, or an object of type networkx.Graph. out: array-like, shape (n_vertices, n_vertices) A graph.

networkx.Graph, numpy.array
graspy.utils.symmetrize(graph, method='triu')[source]
graspy.utils.remove_loops(graph)[source]