Python scipy.sparse.isspmatrix() Examples
The following are 30
code examples of scipy.sparse.isspmatrix().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
scipy.sparse
, or try the search function
.
Example #1
Source File: data_helper.py From LanczosNetwork with MIT License | 7 votes |
def normalize_adj(A, is_sym=True, exponent=0.5): """ Normalize adjacency matrix is_sym=True: D^{-1/2} A D^{-1/2} is_sym=False: D^{-1} A """ rowsum = np.array(A.sum(1)) if is_sym: r_inv = np.power(rowsum, -exponent).flatten() else: r_inv = np.power(rowsum, -1.0).flatten() r_inv[np.isinf(r_inv)] = 0. if sp.isspmatrix(A): r_mat_inv = sp.diags(r_inv.squeeze()) else: r_mat_inv = np.diag(r_inv) if is_sym: return r_mat_inv.dot(A).dot(r_mat_inv) else: return r_mat_inv.dot(A)
Example #2
Source File: coordinate_descent.py From Splunking-Crime with GNU Affero General Public License v3.0 | 6 votes |
def _decision_function(self, X): """Decision function of the linear model Parameters ---------- X : numpy array or scipy.sparse matrix of shape (n_samples, n_features) Returns ------- T : array, shape (n_samples,) The predicted decision function """ check_is_fitted(self, 'n_iter_') if sparse.isspmatrix(X): return safe_sparse_dot(X, self.coef_.T, dense_output=True) + self.intercept_ else: return super(ElasticNet, self)._decision_function(X) ############################################################################### # Lasso model
Example #3
Source File: affinity.py From megaman with BSD 2-Clause "Simplified" License | 6 votes |
def affinity_matrix(self, adjacency_matrix): A = check_array(adjacency_matrix, dtype=float, copy=True, accept_sparse=['csr', 'csc', 'coo']) if isspmatrix(A): data = A.data else: data = A # in-place computation of # data = np.exp(-(data / radius) ** 2) data **= 2 data /= -self.radius ** 2 np.exp(data, out=data) if self.symmetrize: A = self._symmetrize(A) # for sparse, need a true zero on the diagonal # TODO: make this more efficient? if isspmatrix(A): A.setdiag(1) return A
Example #4
Source File: automl_transformer.py From sagemaker-scikit-learn-extension with Apache License 2.0 | 6 votes |
def _dense_array(arr): """Converts the input array to dense array. Parameters ---------- arr : numpy array or csr_matrix The array to be densified. Returns ------- array-like Dense numpy array representing arr. """ if isspmatrix(arr): return arr.todense() return arr
Example #5
Source File: modularity.py From markov_clustering with MIT License | 6 votes |
def convert_to_adjacency_matrix(matrix): """ Converts transition matrix into adjacency matrix :param matrix: The matrix to be converted :returns: adjacency matrix """ for i in range(matrix.shape[0]): if isspmatrix(matrix): col = find(matrix[:,i])[2] else: col = matrix[:,i].T.tolist()[0] coeff = max( Fraction(c).limit_denominator().denominator for c in col ) matrix[:,i] *= coeff return matrix
Example #6
Source File: modularity.py From markov_clustering with MIT License | 6 votes |
def delta_matrix(matrix, clusters): """ Compute delta matrix where delta[i,j]=1 if i and j belong to same cluster and i!=j :param matrix: The adjacency matrix :param clusters: The clusters returned by get_clusters :returns: delta matrix """ if isspmatrix(matrix): delta = dok_matrix(matrix.shape) else: delta = np.zeros(matrix.shape) for i in clusters : for j in permutations(i, 2): delta[j] = 1 return delta
Example #7
Source File: coordinate_descent.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def _decision_function(self, X): """Decision function of the linear model Parameters ---------- X : numpy array or scipy.sparse matrix of shape (n_samples, n_features) Returns ------- T : array, shape (n_samples,) The predicted decision function """ check_is_fitted(self, 'n_iter_') if sparse.isspmatrix(X): return safe_sparse_dot(X, self.coef_.T, dense_output=True) + self.intercept_ else: return super()._decision_function(X) ############################################################################### # Lasso model
Example #8
Source File: test_matrix_csr.py From lkpy with MIT License | 6 votes |
def test_csr_to_sps(): # initialize sparse matrix mat = np.random.randn(10, 5) mat[mat <= 0] = 0 # get COO smat = sps.coo_matrix(mat) # make sure it's sparse assert smat.nnz == np.sum(mat > 0) csr = lm.CSR.from_coo(smat.row, smat.col, smat.data, shape=smat.shape) assert csr.nnz == smat.nnz assert csr.nrows == smat.shape[0] assert csr.ncols == smat.shape[1] smat2 = csr.to_scipy() assert sps.isspmatrix(smat2) assert sps.isspmatrix_csr(smat2) for i in range(csr.nrows): assert smat2.indptr[i] == csr.rowptrs[i] assert smat2.indptr[i+1] == csr.rowptrs[i+1] sp = smat2.indptr[i] ep = smat2.indptr[i+1] assert all(smat2.indices[sp:ep] == csr.colinds[sp:ep]) assert all(smat2.data[sp:ep] == csr.values[sp:ep])
Example #9
Source File: mcl.py From markov_clustering with MIT License | 6 votes |
def add_self_loops(matrix, loop_value): """ Add self-loops to the matrix by setting the diagonal to loop_value :param matrix: The matrix to add loops to :param loop_value: Value to use for self-loops :returns: The matrix with self-loops """ shape = matrix.shape assert shape[0] == shape[1], "Error, matrix is not square" if isspmatrix(matrix): new_matrix = matrix.todok() else: new_matrix = matrix.copy() for i in range(shape[0]): new_matrix[i, i] = loop_value if isspmatrix(matrix): return new_matrix.tocsc() return new_matrix
Example #10
Source File: spectral_embedding_.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def _graph_is_connected(graph): """ Return whether the graph is connected (True) or Not (False) Parameters ---------- graph : array-like or sparse matrix, shape: (n_samples, n_samples) adjacency matrix of the graph, non-zero weight means an edge between the nodes Returns ------- is_connected : bool True means the graph is fully connected and False means not """ if sparse.isspmatrix(graph): # sparse graph, find all the connected components n_connected_components, _ = connected_components(graph) return n_connected_components == 1 else: # dense graph, find all connected components start from node 0 return _graph_connected_component(graph, 0).sum() == graph.shape[0]
Example #11
Source File: mcl.py From markov_clustering with MIT License | 6 votes |
def prune(matrix, threshold): """ Prune the matrix so that very small edges are removed. The maximum value in each column is never pruned. :param matrix: The matrix to be pruned :param threshold: The value below which edges will be removed :returns: The pruned matrix """ if isspmatrix(matrix): pruned = dok_matrix(matrix.shape) pruned[matrix >= threshold] = matrix[matrix >= threshold] pruned = pruned.tocsc() else: pruned = matrix.copy() pruned[pruned < threshold] = 0 # keep max value in each column. same behaviour for dense/sparse num_cols = matrix.shape[1] row_indices = matrix.argmax(axis=0).reshape((num_cols,)) col_indices = np.arange(num_cols) pruned[row_indices, col_indices] = matrix[row_indices, col_indices] return pruned
Example #12
Source File: mcl.py From markov_clustering with MIT License | 6 votes |
def get_clusters(matrix): """ Retrieve the clusters from the matrix :param matrix: The matrix produced by the MCL algorithm :returns: A list of tuples where each tuple represents a cluster and contains the indices of the nodes belonging to the cluster """ if not isspmatrix(matrix): # cast to sparse so that we don't need to handle different # matrix types matrix = csc_matrix(matrix) # get the attractors - non-zero elements of the matrix diagonal attractors = matrix.diagonal().nonzero()[0] # somewhere to put the clusters clusters = set() # the nodes in the same row as each attractor form a cluster for attractor in attractors: cluster = tuple(matrix.getrow(attractor).nonzero()[1].tolist()) clusters.add(cluster) return sorted(list(clusters))
Example #13
Source File: MultiVAE_RecommenderWrapper.py From RecSys2019_DeepLearning_Evaluation with GNU Affero General Public License v3.0 | 6 votes |
def _compute_item_score(self, user_id_array, items_to_compute = None): URM_train_user_slice = self.URM_train[user_id_array] if sparse.isspmatrix(URM_train_user_slice): URM_train_user_slice = URM_train_user_slice.toarray() URM_train_user_slice = URM_train_user_slice.astype('float32') item_scores_to_compute = self.sess.run(self.logits_var, feed_dict={self.vae.input_ph: URM_train_user_slice}) if items_to_compute is not None: item_scores = - np.ones((len(user_id_array), self.n_items)) * np.inf item_scores[:, items_to_compute] = item_scores_to_compute[:, items_to_compute] else: item_scores = item_scores_to_compute return item_scores
Example #14
Source File: spectral_embedding_.py From twitter-stock-recommendation with MIT License | 6 votes |
def _graph_is_connected(graph): """ Return whether the graph is connected (True) or Not (False) Parameters ---------- graph : array-like or sparse matrix, shape: (n_samples, n_samples) adjacency matrix of the graph, non-zero weight means an edge between the nodes Returns ------- is_connected : bool True means the graph is fully connected and False means not """ if sparse.isspmatrix(graph): # sparse graph, find all the connected components n_connected_components, _ = connected_components(graph) return n_connected_components == 1 else: # dense graph, find all connected components start from node 0 return _graph_connected_component(graph, 0).sum() == graph.shape[0]
Example #15
Source File: matrixtools.py From pyGSTi with Apache License 2.0 | 6 votes |
def safe_onenorm(A): """ Computes the 1-norm of the dense or sparse matrix `A`. Parameters ---------- A : ndarray or sparse matrix The matrix or vector to take the norm of. Returns ------- float """ if _sps.isspmatrix(A): return sparse_onenorm(A) else: return _np.linalg.norm(A, 1)
Example #16
Source File: spectral_embedding_.py From Splunking-Crime with GNU Affero General Public License v3.0 | 6 votes |
def _graph_is_connected(graph): """ Return whether the graph is connected (True) or Not (False) Parameters ---------- graph : array-like or sparse matrix, shape: (n_samples, n_samples) adjacency matrix of the graph, non-zero weight means an edge between the nodes Returns ------- is_connected : bool True means the graph is fully connected and False means not """ if sparse.isspmatrix(graph): # sparse graph, find all the connected components n_connected_components, _ = connected_components(graph) return n_connected_components == 1 else: # dense graph, find all connected components start from node 0 return _graph_connected_component(graph, 0).sum() == graph.shape[0]
Example #17
Source File: data_handlers.py From feagen with BSD 2-Clause "Simplified" License | 6 votes |
def write_data(self, result_dict): for key, result in six.iteritems(result_dict): if ss.isspmatrix(result): if np.isnan(result.data).any(): raise ValueError("data {} have nan".format(key)) elif np.isnan(result).any(): raise ValueError("data {} have nan".format(key)) with SimpleTimer("Writing generated data {} to hdf5 file" .format(key), end_in_new_line=False): if key in self.h5f: # self.h5f[key][...] = result raise NotImplementedError("Overwriting not supported.") else: if (isinstance(result, ss.csc_matrix) or isinstance(result, ss.csr_matrix)): # sparse matrix h5sparse.Group(self.h5f).create_dataset(key, data=result) else: self.h5f.create_dataset(key, data=result) self.h5f.flush()
Example #18
Source File: spectral_embedding_.py From intro_ds with Apache License 2.0 | 6 votes |
def _graph_is_connected(graph): """ Return whether the graph is connected (True) or Not (False) Parameters ---------- graph : array-like or sparse matrix, shape: (n_samples, n_samples) adjacency matrix of the graph, non-zero weight means an edge between the nodes Returns ------- is_connected : bool True means the graph is fully connected and False means not """ if sparse.isspmatrix(graph): # sparse graph, find all the connected components n_connected_components, _ = connected_components(graph) return n_connected_components == 1 else: # dense graph, find all connected components start from node 0 return _graph_connected_component(graph, 0).sum() == graph.shape[0]
Example #19
Source File: pardiso_wrapper.py From PyPardisoProject with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _check_b(self, A, b): if sp.isspmatrix(b): warnings.warn('PyPardiso requires the right-hand side b to be a dense array for maximum efficiency', SparseEfficiencyWarning) b = b.todense() # pardiso expects fortran (column-major) order if b is a matrix if b.ndim == 2: b = np.asfortranarray(b) if b.shape[0] != A.shape[0]: raise ValueError("Dimension mismatch: Matrix A {} and array b {}".format(A.shape, b.shape)) if b.dtype != np.float64: if b.dtype in [np.float16, np.float32, np.int16, np.int32, np.int64]: warnings.warn("Array b's data type was converted from {} to float64".format(str(b.dtype)), PyPardisoWarning) b = b.astype(np.float64) else: raise TypeError('Dtype {} for array b is not supported'.format(str(b.dtype))) return b
Example #20
Source File: spectral_embedding.py From megaman with BSD 2-Clause "Simplified" License | 6 votes |
def _graph_is_connected(graph): """ Return whether the graph is connected (True) or Not (False) Parameters ---------- graph : array-like or sparse matrix, shape: (n_samples, n_samples) adjacency matrix of the graph, non-zero weight means an edge between the nodes Returns ------- is_connected : bool True means the graph is fully connected and False means not """ if sparse.isspmatrix(graph): # sparse graph, find all the connected components n_connected_components, _ = connected_components(graph) return n_connected_components == 1 else: # dense graph, find all connected components start from node 0 return _graph_connected_component(graph, 0).sum() == graph.shape[0]
Example #21
Source File: split_train_validation_test_VAE_CF.py From RecSys2019_DeepLearning_Evaluation with GNU Affero General Public License v3.0 | 6 votes |
def _compute_score_VAE(self, user_id): X = test_data_tr[user_id] if sparse.isspmatrix(X): X = X.toarray() X = X.astype('float32') pred_val = self.sess.run(logits_var, feed_dict={vae.input_ph: X}) pred_val[X.nonzero()] = -np.inf return pred_val
Example #22
Source File: arpack.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def get_OPinv_matvec(A, M, sigma, symmetric=False, tol=0): if sigma == 0: return get_inv_matvec(A, symmetric=symmetric, tol=tol) if M is None: #M is the identity matrix if isdense(A): if (np.issubdtype(A.dtype, np.complexfloating) or np.imag(sigma) == 0): A = np.copy(A) else: A = A + 0j A.flat[::A.shape[1] + 1] -= sigma return LuInv(A).matvec elif isspmatrix(A): A = A - sigma * eye(A.shape[0]) if symmetric and isspmatrix_csr(A): A = A.T return SpLuInv(A.tocsc()).matvec else: return IterOpInv(_aslinearoperator_with_dtype(A), M, sigma, tol=tol).matvec else: if ((not isdense(A) and not isspmatrix(A)) or (not isdense(M) and not isspmatrix(M))): return IterOpInv(_aslinearoperator_with_dtype(A), _aslinearoperator_with_dtype(M), sigma, tol=tol).matvec elif isdense(A) or isdense(M): return LuInv(A - sigma * M).matvec else: OP = A - sigma * M if symmetric and isspmatrix_csr(OP): OP = OP.T return SpLuInv(OP.tocsc()).matvec # ARPACK is not threadsafe or reentrant (SAVE variables), so we need a # lock and a re-entering check.
Example #23
Source File: eigendecomp.py From megaman with BSD 2-Clause "Simplified" License | 5 votes |
def _is_symmetric(M, tol = 1e-8): if sparse.isspmatrix(M): conditions = np.abs((M - M.T).data) < tol else: conditions = np.abs((M - M.T)) < tol return(np.all(conditions))
Example #24
Source File: nystrom_extension.py From megaman with BSD 2-Clause "Simplified" License | 5 votes |
def nystrom_extension(C, e_vec, e_val): """ Parameters ---------- C: array-like, shape = (n, l) Stacking the training and testing data where n is the total number of data and l is the number of training data. e_val: array, shape = (1,s) If W equals to C[0:l, :], then e_val are the largest s eig values of W e_vec: array-like, shape = (l, s) These are the corresponding eig vectors to e_val Returns ------- eval_nystrom: array-like, shape = (1,s) These are the estimated largest s eig values of the matrix where C is the first l columns. evec_nystrom: arrau-like, shape = (n, s) These are the corresponding eig vectors to eval_nystrom """ n,l = C.shape W = C[0:l, :] eval_nystrom = (n/l)*e_val eval_inv = e_val.copy() e_nonzero = np.where(e_val != 0) # e_nonzero = [i for i, e in enumerate(e_val) if e != 0] #np.nonzero(a)[0] eval_inv[e_nonzero] = 1.0/e_val[e_nonzero] if isspmatrix(C): evec_nystrom = np.sqrt(l/n)*C.dot(e_vec)*eval_inv else: evec_nystrom = np.sqrt(l/n)*np.dot(C,e_vec)*eval_inv return eval_nystrom,evec_nystrom
Example #25
Source File: modularity.py From markov_clustering with MIT License | 5 votes |
def modularity(matrix, clusters): """ Compute the modularity :param matrix: The adjacency matrix :param clusters: The clusters returned by get_clusters :returns: modularity value """ matrix = convert_to_adjacency_matrix(matrix) m = matrix.sum() if isspmatrix(matrix): matrix_2 = matrix.tocsr(copy=True) else : matrix_2 = matrix if is_undirected(matrix): expected = lambda i,j : (( matrix_2[i,:].sum() + matrix[:,i].sum() )* ( matrix[:,j].sum() + matrix_2[j,:].sum() )) else: expected = lambda i,j : ( matrix_2[i,:].sum()*matrix[:,j].sum() ) delta = delta_matrix(matrix, clusters) indices = np.array(delta.nonzero()) Q = sum( matrix[i, j] - expected(i, j)/m for i, j in indices.T )/m return Q
Example #26
Source File: test_laplacian.py From megaman with BSD 2-Clause "Simplified" License | 5 votes |
def test_laplacian_smoketest(): rand = np.random.RandomState(42) X = rand.rand(20, 2) adj = compute_adjacency_matrix(X, radius=0.5) aff = compute_affinity_matrix(adj, radius=0.1) def check_laplacian(method): lap = compute_laplacian_matrix(aff, method=method) assert isspmatrix(lap) assert_equal(lap.shape, (X.shape[0], X.shape[0])) for method in Laplacian.asymmetric_methods(): yield check_laplacian, method
Example #27
Source File: test_adjacency.py From megaman with BSD 2-Clause "Simplified" License | 5 votes |
def test_adjacency(): rng = np.random.RandomState(36) X = rng.rand(100, 3) Gtrue = {} exact_methods = [m for m in Adjacency.methods() if not m.endswith('flann')] def check_kneighbors(n_neighbors, method): if method == 'pyflann' and NO_PYFLANN: raise SkipTest("pyflann not installed") G = compute_adjacency_matrix(X, method=method, n_neighbors=n_neighbors) assert isspmatrix(G) assert G.shape == (X.shape[0], X.shape[0]) if method in exact_methods: assert_allclose(G.toarray(), Gtrue[n_neighbors].toarray()) def check_radius(radius, method): if method == 'pyflann' and NO_PYFLANN: raise SkipTest("pyflann not installed") G = compute_adjacency_matrix(X, method=method, radius=radius) assert isspmatrix(G) assert G.shape == (X.shape[0], X.shape[0]) if method in exact_methods: assert_allclose(G.toarray(), Gtrue[radius].toarray()) for n_neighbors in [5, 10, 15]: Gtrue[n_neighbors] = compute_adjacency_matrix(X, method='brute', n_neighbors=n_neighbors) for method in Adjacency.methods(): yield check_kneighbors, n_neighbors, method for radius in [0.1, 0.5, 1.0]: Gtrue[radius] = compute_adjacency_matrix(X, method='brute', radius=radius) for method in Adjacency.methods(): yield check_radius, radius, method
Example #28
Source File: markovChain.py From discreteMarkovChain with MIT License | 5 votes |
def getTransitionMatrix(self,probabilities=True): """ If self.P has been given already, we will reuse it and convert it to a sparse csr matrix if needed. Otherwise, we will generate it using the direct or indirect method. Since most solution methods use a probability matrix, this is the default setting. By setting probabilities=False we can also return a rate matrix. """ if self.P is not None: if isspmatrix(self.P): if not isspmatrix_csr(self.P): self.P = self.P.tocsr() else: assert isinstance(self.P, np.ndarray) and self.P.ndim==2 and self.P.shape[0]==self.P.shape[1],'P needs to be a 2d numpy array with an equal number of columns and rows' self.P = csr_matrix(self.P) elif self.direct == True: self.P = self.directInitialMatrix() else: self.P = self.indirectInitialMatrix(self.initialState) if probabilities: P = self.convertToProbabilityMatrix(self.P) else: P = self.convertToRateMatrix(self.P) return P
Example #29
Source File: data_handlers.py From feagen with BSD 2-Clause "Simplified" License | 5 votes |
def bundle(self, key, path, new_key): """Copy the data to another HDF5 file with new key.""" data = self.get(key) with h5py.File(path) as h5f: if ss.isspmatrix(data) or isinstance(data, h5sparse.Dataset): h5f = h5sparse.Group(h5f) h5f.create_dataset(new_key, data=data)
Example #30
Source File: label_propagation.py From twitter-stock-recommendation with MIT License | 5 votes |
def _build_graph(self): """Matrix representing a fully connected graph between each sample This basic implementation creates a non-stochastic affinity matrix, so class distributions will exceed 1 (normalization may be desired). """ if self.kernel == 'knn': self.nn_fit = None affinity_matrix = self._get_kernel(self.X_) normalizer = affinity_matrix.sum(axis=0) if sparse.isspmatrix(affinity_matrix): affinity_matrix.data /= np.diag(np.array(normalizer)) else: affinity_matrix /= normalizer[:, np.newaxis] return affinity_matrix