datasketch/weighted_minhash.py
def minhash(self, v):
        '''Create a new weighted MinHash given a weighted Jaccard vector.
        Each dimension is an integer 
        frequency of the corresponding element in the multi-set represented
        by the vector.

        Args:
            v (numpy.array): The Jaccard vector. 
        '''
        if not isinstance(v, collections.Iterable):
            raise TypeError("Input vector must be an iterable")
        if not len(v) == self.dim:
            raise ValueError("Input dimension mismatch, expecting %d" % self.dim)
        if not isinstance(v, np.ndarray):
            v = np.array(v, dtype=np.float32)
        elif v.dtype != np.float32:
            v = v.astype(np.float32)
        hashvalues = np.zeros((self.sample_size, 2), dtype=np.int)
        vzeros = (v == 0)
        if vzeros.all():
            raise ValueError("Input is all zeros")
        v[vzeros] = np.nan
        vlog = np.log(v)
        for i in range(self.sample_size):
            t = np.floor((vlog / self.rs[i]) + self.betas[i])
            ln_y = (t - self.betas[i]) * self.rs[i]
            ln_a = self.ln_cs[i] - ln_y - self.rs[i]
            k = np.nanargmin(ln_a)
            hashvalues[i][0], hashvalues[i][1] = k, int(t[k])
        return WeightedMinHash(self.seed, hashvalues)
def minhash(self, v):
        '''Create a new weighted MinHash given a weighted Jaccard vector.
        Each dimension is an integer 
        frequency of the corresponding element in the multi-set represented
        by the vector.

        Args:
            v (numpy.array): The Jaccard vector. 
        '''
        if not isinstance(v, collections.Iterable):
            raise TypeError("Input vector must be an iterable")
        if not len(v) == self.dim:
            raise ValueError("Input dimension mismatch, expecting %d" % self.dim)
        if not isinstance(v, np.ndarray):
            v = np.array(v, dtype=np.float32)
        elif v.dtype != np.float32:
            v = v.astype(np.float32)
        hashvalues = np.zeros((self.sample_size, 2), dtype=np.int)
        vzeros = (v == 0)
        if vzeros.all():
            raise ValueError("Input is all zeros")
        v[vzeros] = np.nan
        vlog = np.log(v)
        for i in range(self.sample_size):
            t = np.floor((vlog / self.rs[i]) + self.betas[i])
            ln_y = (t - self.betas[i]) * self.rs[i]
            ln_a = self.ln_cs[i] - ln_y - self.rs[i]
            k = np.nanargmin(ln_a)
            hashvalues[i][0], hashvalues[i][1] = k, int(t[k])
        return WeightedMinHash(self.seed, hashvalues)
def minhash ( self , v ) : if not isinstance ( v , collections . Iterable ) : raise TypeError ( "Input vector must be an iterable" ) if not len ( v ) == self . dim : raise ValueError ( "Input dimension mismatch, expecting %d" % self . dim ) if not isinstance ( v , np . ndarray ) : v = np . array ( v , dtype = np . float32 ) elif v . dtype != np . float32 : v = v . astype ( np . float32 ) hashvalues = np . zeros ( ( self . sample_size , 2 ) , dtype = np . int ) vzeros = ( v == 0 ) if vzeros . all ( ) : raise ValueError ( "Input is all zeros" ) v [ vzeros ] = np . nan vlog = np . log ( v ) for i in range ( self . sample_size ) : t = np . floor ( ( vlog / self . rs [ i ] ) + self . betas [ i ] ) ln_y = ( t - self . betas [ i ] ) * self . rs [ i ] ln_a = self . ln_cs [ i ] - ln_y - self . rs [ i ] k = np . nanargmin ( ln_a ) hashvalues [ i ] [ 0 ] , hashvalues [ i ] [ 1 ] = k , int ( t [ k ] ) return WeightedMinHash ( self . seed , hashvalues )
Create a new weighted MinHash given a weighted Jaccard vector.
        Each dimension is an integer 
        frequency of the corresponding element in the multi-set represented
        by the vector.

        Args:
            v (numpy.array): The Jaccard vector.
Create a new weighted MinHash given a weighted Jaccard vector . Each dimension is an integer frequency of the corresponding element in the multi - set represented by the vector .