skbio.stats.distance.SymmetricMatrix.from_iterable#

classmethod SymmetricMatrix.from_iterable(iterable, metric, key=None, keys=None, validate=True, condensed=False)[source]#

Create a symmetric matrix from an iterable given a metric.

Parameters:
iterableiterable

Objects to compute pairwise relationships on.

metriccallable

A function that takes two arguments and returns a float representing the relationship between the two objects.

keycallable or str, optional

A function that takes one argument and returns a string representing the ID of the object. Alternatively, a key to the metadata property if exists for each object in the iterable. If None, the default IDs will be used.

keysiterable of str, optional

IDs of the objects. Must be the same length as iterable.

validateboolean, optional

If True, all pairwise relationships are computed, including upper and lower triangles and the diagonal. If False, metric is assumed to be symmetric and only the lower triangle (excluding the diagonal) is computed, thereby saving compute.

diagonal1-D array_like or float, optional

Fill the matrix diagonal with this number or vector when validate is False. Default is zero.

condensedbool, optional

Store the data in a 2-D redundant form (False, default) or a 1-D condensed form (True).

Returns:
PairwiseMatrix

The metric applied to all pairwise elements in the iterable.

Raises:
ValueError

If key and keys are both provided.