f947b1479e76dbeee06400e8d97b23bf64d0c8ff,librosa/segment.py,,recurrence_matrix,#,48

Before Change


    t = X.shape[1]

    if isinstance(k, float):
        if 0 < k < 1:
            k = np.ceil(k * t)
        else:
            raise ValueError("Valid values of k are strictly between 0 and 1.")

    def _band_infinite():
        """Suppress the diagonal+- of a distance matrix"""
        A       = np.empty( (t, t) )
        A[:]    = np.inf
        A[np.triu_indices_from(A, width)] = 0
        A[np.tril_indices_from(A, -width)] = 0

        return A

    // Build the distance matrix
    D = scipy.spatial.distance.squareform(
            scipy.spatial.distance.pdist(X.T, metric=metric))

    // Max out the diagonal band
    D = D + _band_infinite()

    // build the recurrence plot

    R = np.zeros( (t, t), dtype=bool)

    // get the k nearest neighbors for each point
    for i in range(t):
        for j in np.argsort(D[i])[:k]:
            R[i, j] = True

    // symmetrize
    if sym:
        R = R * R.T

    return R 

def structure_feature(R, pad=True):
    """Compute the structure feature from a recurrence matrix.

    The i"th column of the recurrence matrix is shifted up by i.
    The resulting matrix is indexed horizontally by time,
    and vertically by lag.

    :parameters:
      - R   : np.ndarray, shape=(t,t)
          recurrence matrix (see `librosa.segment.recurrence_matrix`)
      
      - pad : boolean

    :returns:
      - L : np.ndarray
          ``L[i, t]`` = the recurrence at time ``t`` with lag ``i``.

      .. note:: negative lag values are supported by wrapping to the end of the array.

    :raises:
      - ValueError
          if R is not square
    """

    t = R.shape[0]
    if t != R.shape[1]:
        raise ValueError("R must be a square matrix")

    if pad:
        L = np.vstack( ( R, np.zeros_like(R) ) )
    else:
        L = R.copy()

    for i in range(1, t):
        L[:, i] = np.roll(L[:, i], -i, axis=-1)

    return L

def agglomerative(data, k):
    Bottom-up temporal segmentation

    :parameters:
      - data     : np.ndarray    
          feature matrix (d-by-t)

      - k        : int > 0
          number of segments to produce

    :returns:
      - boundaries : np.ndarray, shape=(k,1)  
          left-boundaries (frame numbers) of detected segments

    

After Change


    t = data.shape[1]

    if k is None:
        k = np.ceil(np.sqrt(t))

    def _band_infinite():
        """Suppress the diagonal+- of a distance matrix"""
Italian Trulli
In pattern: SUPERPATTERN

Frequency: 3

Non-data size: 5

Instances


Project Name: librosa/librosa
Commit Name: f947b1479e76dbeee06400e8d97b23bf64d0c8ff
Time: 2013-11-21
Author: brm2132@columbia.edu
File Name: librosa/segment.py
Class Name:
Method Name: recurrence_matrix


Project Name: keras-team/keras-preprocessing
Commit Name: 75c9e8cbcd9da21591cd5f8aaaa99205f48fa606
Time: 2021-01-19
Author: eli.osherovich@gmail.com
File Name: keras_preprocessing/image/image_data_generator.py
Class Name: ImageDataGenerator
Method Name: fit


Project Name: scikit-image/scikit-image
Commit Name: 2b83e8e84873a2f5cf81d0a8e848324dee974071
Time: 2020-03-24
Author: danielleholzberger@gmail.com
File Name: skimage/transform/_geometric.py
Class Name: SimilarityTransform
Method Name: scale