skbio.stats.distance.DissimilarityMatrix.between#

DissimilarityMatrix.between(from_, to_, allow_overlap=False)[source]#

Obtain the distances between the two groups of IDs.

Parameters:
from_Iterable of str

The IDs to obtain distances from. Distances from all pairs of IDs in from and to will be obtained.

to_Iterable of str

The IDs to obtain distances to. Distances from all pairs of IDs in to and from will be obtained.

allow_overlapbool, optional

If True, allow overlap in the IDs of from and to (which would in effect be collecting the within distances). Default is False.

Returns:
pd.DataFrame

(i, j, value) representing the source ID (“i”), the target ID (“j”) and the distance (“value”).

Raises:
MissingIDError

If an ID(s) specified is not in the dissimilarity matrix.

Notes

Order of the return items is stable, meaning that requesting IDs [‘a’, ‘b’] is equivalent to [‘b’, ‘a’]. The order is with respect to the .ids attribute of self.

Examples

>>> from skbio.stats.distance import DissimilarityMatrix
>>> dm = DissimilarityMatrix([[0, 1, 2, 3, 4], [1, 0, 1, 2, 3],
...                           [2, 1, 0, 1, 2], [3, 2, 1, 0, 1],
...                           [4, 3, 2, 1, 0]],
...                          ['A', 'B', 'C', 'D', 'E'])
>>> dm.between(['A', 'B'], ['C', 'D', 'E'])
   i  j  value
0  A  C    2.0
1  A  D    3.0
2  A  E    4.0
3  B  C    1.0
4  B  D    2.0
5  B  E    3.0