Clustering — ``selkie.dp.ml.cluster`` ************************************* UTM --- The class UTM represents an upper triangular matrix. Cells in a triangular matrix are identified by a pair of indices, but the order of the indices does not matter. The rows/columns of the matrix are identified not only by index but by name. One provides a list of names to create the matrix:: >>> utm = UTM(names=['foo', 'bar', 'baz']) >>> print(utm) foo bar 0 foo baz 0 bar baz 0 Otherwise, one sets and accesses cells as one would in a regular matrix:: >>> utm['foo','baz'] = 10 >>> utm['baz','bar'] = 20 >>> utm['bar','foo'] = 6 >>> print(utm) foo bar 6 foo baz 10 bar baz 20 One may alternatively use numeric indices:: >>> utm[1,2] = 12 >>> print(utm) foo bar 6 foo baz 10 bar baz 12 >>> utm[2,1] 12 The len() of the matrix is the number of rows/columns:: >>> len(utm) 3