コード例 #1
0
def truncated_simplex_tree(simplexTree: np.ndarray,
                           int_trunc: int = 100) -> tuple:
    """
        **This function return a truncated simplex tree.**

        A sparse representation of the persistence diagram in the form of a truncated
        persistence tree. Speeds up computation on large scale data sets.

        + param **simplexTree**: simplex tree, type `np.ndarray`.
        + param **int_trunc**: number of persistent interval kept per dimension, default is `100`, type `int`.
        + return **simplexTreeTruncatedPersistence**: truncated simplex tree, type `np.ndarray`.
    """
    simplexTree.persistence()
    dimension = simplexTree.dimension()
    simplexTreeTruncatedPersistence = []

    for i in range(dimension):
        dPersistence = simplexTree.persistence_intervals_in_dimension(
            dimension)
        j = len(dPersistence)

        if j > int_trunc:
            dPersistenceTruncated = [
                dPersistence[i] for i in range(j - int_trunc, j)
            ]
        else:
            dPersistenceTruncated = dPersistence
        simplexTreeTruncatedPersistence = simplexTreeTruncatedPersistence + [
            (i, (l[0], l[1])) for l in dPersistenceTruncated
        ]

    return simplexTreeTruncatedPersistence