本文整理汇总了Python中scipy.sparse.issparse方法的典型用法代码示例。如果您正苦于以下问题:Python sparse.issparse方法的具体用法?Python sparse.issparse怎么用?Python sparse.issparse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类scipy.sparse
的用法示例。
在下文中一共展示了sparse.issparse方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: fapply
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def fapply(f, x, tz=False):
'''
fapply(f,x) yields the result of applying f either to x, if x is a normal value or array, or to
x.data if x is a sparse matrix. Does not modify x (unless f modifiex x).
The optional argument tz (default: False) may be set to True to specify that, if x is a sparse
matrix that contains at least 1 element that is a sparse-zero, then f(0) should replace all the
sparse-zeros in x (unless f(0) == 0).
'''
if sps.issparse(x):
y = x.copy()
y.data = f(x.data)
if tz and y.getnnz() < np.prod(y.shape):
z = f(np.array(0))
if z != 0:
y = y.toarray()
y[y == 0] = z
return y
else: return f(x)
示例2: cplus
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def cplus(*args):
'''
cplus(a, b...) returns the sum of all the values as a numpy array object. Like numpy's add
function or a+b syntax, plus will thread over the latest dimension possible.
Additionally, cplus works correctly with sparse arrays.
'''
n = len(args)
if n == 0: return np.asarray(0)
elif n == 1: return np.asarray(args[0])
elif n > 2: return reduce(plus, args)
(a,b) = args
if sps.issparse(a):
if not sps.issparse(b):
b = np.asarray(b)
if len(b.shape) == 0: b = np.reshape(b, (1,1))
elif sps.issparse(b):
a = np.asarray(a)
if len(a.shape) == 0: a = np.reshape(a, (1,1))
else:
a = np.asarray(a)
b = np.asarray(b)
return a + b
示例3: inner
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def inner(a,b):
'''
inner(a,b) yields the dot product of a and b, doing so in a fashion that respects sparse
matrices when encountered. This does not error check for bad dimensionality.
If a or b are constants, then the result is just the a*b; if a and b are both vectors or both
matrices, then the inner product is dot(a,b); if a is a vector and b is a matrix, this is
equivalent to as if a were a matrix with 1 row; and if a is a matrix and b a vector, this is
equivalent to as if b were a matrix with 1 column.
'''
if sps.issparse(a): return a.dot(b)
else: a = np.asarray(a)
if len(a.shape) == 0: return a*b
if sps.issparse(b):
if len(a.shape) == 1: return b.T.dot(a)
else: return b.T.dot(a.T).T
else: b = np.asarray(b)
if len(b.shape) == 0: return a*b
if len(a.shape) == 1 and len(b.shape) == 2: return np.dot(b.T, a)
else: return np.dot(a,b)
示例4: arcsine
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def arcsine(x, null=(-np.inf, np.inf)):
'''
arcsine(x) is equivalent to asin(x) except that it also works on sparse arrays.
The optional argument null (default, (-numpy.inf, numpy.inf)) may be specified to indicate what
value(s) should be assigned when x < -1 or x > 1. If only one number is given, then it is used
for both values; otherwise the first value corresponds to <-1 and the second to >1. If null is
None, then an error is raised when invalid values are encountered.
'''
if sps.issparse(x):
x = x.copy()
x.data = arcsine(x.data, null=null, rtol=rtol, atol=atol)
return x
else: x = np.asarray(x)
try: (nln,nlp) = null
except Exception: (nln,nlp) = (null,null)
ii = None if nln is None else np.where(x < -1)
jj = None if nlp is None else np.where(x > 1)
if ii: x[ii] = 0
if jj: x[jj] = 0
x = np.arcsin(x)
if ii: x[ii] = nln
if jj: x[jj] = nlp
return x
示例5: arccosine
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def arccosine(x, null=(-np.inf, np.inf)):
'''
arccosine(x) is equivalent to acos(x) except that it also works on sparse arrays.
The optional argument null (default, (-numpy.inf, numpy.inf)) may be specified to indicate what
value(s) should be assigned when x < -1 or x > 1. If only one number is given, then it is used
for both values; otherwise the first value corresponds to <-1 and the second to >1. If null is
None, then an error is raised when invalid values are encountered.
'''
if sps.issparse(x): x = x.toarray()
else: x = np.asarray(x)
try: (nln,nlp) = null
except Exception: (nln,nlp) = (null,null)
ii = None if nln is None else np.where(x < -1)
jj = None if nlp is None else np.where(x > 1)
if ii: x[ii] = 0
if jj: x[jj] = 0
x = np.arccos(x)
if ii: x[ii] = nln
if jj: x[jj] = nlp
return x
示例6: save_hdf5
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def save_hdf5(X, y, path):
"""Save data as a HDF5 file.
Args:
X (numpy or scipy sparse matrix): Data matrix
y (numpy array): Target vector.
path (str): Path to the HDF5 file to save data.
"""
with h5py.File(path, 'w') as f:
is_sparse = 1 if sparse.issparse(X) else 0
f['issparse'] = is_sparse
f['target'] = y
if is_sparse:
if not sparse.isspmatrix_csr(X):
X = X.tocsr()
f['shape'] = np.array(X.shape)
f['data'] = X.data
f['indices'] = X.indices
f['indptr'] = X.indptr
else:
f['data'] = X
示例7: diff_op
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def diff_op(self):
"""The diffusion operator calculated from the data
"""
if self.graph is not None:
if isinstance(self.graph, graphtools.graphs.LandmarkGraph):
diff_op = self.graph.landmark_op
else:
diff_op = self.graph.diff_op
if sparse.issparse(diff_op):
diff_op = diff_op.toarray()
return diff_op
else:
raise NotFittedError(
"This PHATE instance is not fitted yet. Call "
"'fit' with appropriate arguments before "
"using this method."
)
示例8: get_batch
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def get_batch(self, X, y):
if self.curr == 0:
self.add_obs(X, y)
return X, y
if (self.curr < self.n) and (isinstance(self.X_reserve, list)):
if not self.has_sparse:
old_X = np.concatenate(self.X_reserve, axis=0)
else:
old_X = sp_vstack(self.X_reserve)
old_y = np.concatenate(self.y_reserve, axis=0)
else:
old_X = self.X_reserve[:self.curr].copy()
old_y = self.y_reserve[:self.curr].copy()
if X.shape[0] == 0:
return old_X, old_y
else:
self.add_obs(X, y)
if not issparse(old_X) and not issparse(X):
return np.r_[old_X, X], np.r_[old_y, y]
else:
return sp_vstack([old_X, X]), np.r_[old_y, y]
示例9: safe_sparse_dot
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def safe_sparse_dot(a, b, dense_output=False):
"""Dot product that handle the sparse matrix case correctly
Uses BLAS GEMM as replacement for numpy.dot where possible
to avoid unnecessary copies.
Parameters
----------
a : array or sparse matrix
b : array or sparse matrix
dense_output : boolean, default False
When False, either ``a`` or ``b`` being sparse will yield sparse
output. When True, output will always be an array.
Returns
-------
dot_product : array or sparse matrix
sparse if ``a`` or ``b`` is sparse and ``dense_output=False``.
"""
if issparse(a) or issparse(b):
ret = a * b
if dense_output and hasattr(ret, "toarray"):
ret = ret.toarray()
return ret
else:
return np.dot(a, b)
示例10: _lazy_build_vector_elements
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def _lazy_build_vector_elements(self):
if self.sparse:
compMxs = []
else:
compMxs = _np.zeros((self.size, self.dim), 'complex')
i, start = 0, 0
for compbasis in self.component_bases:
for lbl, vel in zip(compbasis.labels, compbasis.vector_elements):
assert(_sps.issparse(vel) == self.sparse), "Inconsistent sparsity!"
if self.sparse:
mx = _sps.lil_matrix((self.dim, 1))
mx[start:start + compbasis.dim, 0] = vel
compMxs.append(mx)
else:
compMxs[i, start:start + compbasis.dim] = vel
i += 1
start += compbasis.dim
assert(i == self.size)
self._vector_elements = compMxs
示例11: safereal
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def safereal(A, inplace=False, check=False):
"""
Returns the real-part of `A` correctly when `A` is either a dense array or
a sparse matrix
"""
if check:
assert(safenorm(A, 'imag') < 1e-6), "Check failed: taking real-part of matrix w/nonzero imaginary part"
if _sps.issparse(A):
if _sps.isspmatrix_csr(A):
if inplace:
ret = _sps.csr_matrix((_np.real(A.data), A.indices, A.indptr), shape=A.shape, dtype='d')
else: # copy
ret = _sps.csr_matrix((_np.real(A.data).copy(), A.indices.copy(),
A.indptr.copy()), shape=A.shape, dtype='d')
ret.eliminate_zeros()
return ret
else:
raise NotImplementedError("safereal() doesn't work with %s matrices yet" % str(type(A)))
else:
return _np.real(A)
示例12: safeimag
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def safeimag(A, inplace=False, check=False):
"""
Returns the imaginary-part of `A` correctly when `A` is either a dense array
or a sparse matrix
"""
if check:
assert(safenorm(A, 'real') < 1e-6), "Check failed: taking imag-part of matrix w/nonzero real part"
if _sps.issparse(A):
if _sps.isspmatrix_csr(A):
if inplace:
ret = _sps.csr_matrix((_np.imag(A.data), A.indices, A.indptr), shape=A.shape, dtype='d')
else: # copy
ret = _sps.csr_matrix((_np.imag(A.data).copy(), A.indices.copy(),
A.indptr.copy()), shape=A.shape, dtype='d')
ret.eliminate_zeros()
return ret
else:
raise NotImplementedError("safereal() doesn't work with %s matrices yet" % str(type(A)))
else:
return _np.imag(A)
示例13: __init__
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def __init__(self, X, Y):
# Need to convert sparse matrices to dense here
# TODO: Need to handle sparse matrices better overall; maybe not use
# Datasets for them...?
if issparse(X[0]):
X = [Xt.toarray() for Xt in X]
# Check and set data objects
self.X = X
self.Y = Y
self.t = len(Y)
self.n = len(X[0])
assert np.all([len(X_t) == self.n for X_t in X])
assert np.all([len(Y_t) == self.n for Y_t in Y])
示例14: _to_numpy
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def _to_numpy(Z):
"""Converts a None, list, np.ndarray, or torch.Tensor to np.ndarray;
also handles converting sparse input to dense."""
if Z is None:
return Z
elif issparse(Z):
return Z.toarray()
elif isinstance(Z, np.ndarray):
return Z
elif isinstance(Z, list):
return np.array(Z)
elif isinstance(Z, torch.Tensor):
return Z.cpu().numpy()
else:
msg = (
f"Expected None, list, numpy.ndarray or torch.Tensor, "
f"got {type(Z)} instead."
)
raise Exception(msg)
示例15: _to_torch
# 需要导入模块: from scipy import sparse [as 别名]
# 或者: from scipy.sparse import issparse [as 别名]
def _to_torch(Z, dtype=None):
"""Converts a None, list, np.ndarray, or torch.Tensor to torch.Tensor;
also handles converting sparse input to dense."""
if Z is None:
return None
elif issparse(Z):
Z = torch.from_numpy(Z.toarray())
elif isinstance(Z, torch.Tensor):
pass
elif isinstance(Z, list):
Z = torch.from_numpy(np.array(Z))
elif isinstance(Z, np.ndarray):
Z = torch.from_numpy(Z)
else:
msg = (
f"Expected list, numpy.ndarray or torch.Tensor, "
f"got {type(Z)} instead."
)
raise Exception(msg)
return Z.type(dtype) if dtype else Z