threshold.py

Utilities for thresholding matrices based on different criteria

author: Stefan McCabe (stefanmccabe at gmail dot com)

Submitted as part of the 2019 NetSI Collabathon.

netrd.utilities.threshold.threshold(mat, rule, **kwargs)[source]

A flexible interface to other thresholding functions.

Parameters:
mat (np.ndarray)

A numpy array.

rule (str)

A string indicating which thresholding function to invoke.

kwargs (dict)

Named arguments to pass to the underlying threshold function.

Returns:
thresholded_mat

the thresholded numpy array

netrd.utilities.threshold.threshold_in_range(mat, **kwargs)[source]

Threshold by setting values not within a list of ranges to zero.

Parameters:
mat (np.ndarray)

A numpy array.

cutoffs (list of tuples)

When thresholding, include only edges whose correlations fall within a given range or set of ranges. The lower value must come first in each tuple. For example, to keep those values whose absolute value is between \(0.5\) and \(1\), pass cutoffs=[(-1, -0.5), (0.5, 1)].

Returns:
thresholded_mat (np.ndarray)

the thresholded numpy array

netrd.utilities.threshold.threshold_on_degree(mat, **kwargs)[source]

Threshold by setting values below a given quantile to zero.

Parameters:
mat (np.ndarray)

A numpy array.

avg_k (float)

The average degree to target when thresholding the matrix.

Returns:
thresholded_mat

the thresholded numpy array

netrd.utilities.threshold.threshold_on_quantile(mat, **kwargs)[source]

Threshold by setting values below a given quantile to zero.

Parameters:
mat (np.ndarray)

A numpy array.

quantile (float)

The threshold above which to keep an element of the array, e.g., set to zero elements below the 90th quantile of the array.

Returns:
thresholded_mat

the thresholded numpy array