[Scipy-svn] r4842 - trunk/scipy/sparse
scipy-svn at scipy.org
scipy-svn at scipy.org
Sat Oct 25 21:45:22 EDT 2008
Author: wnbell
Date: 2008-10-25 20:43:51 -0500 (Sat, 25 Oct 2008)
New Revision: 4842
Modified:
trunk/scipy/sparse/construct.py
Log:
cleaned up imports in construction.py
Modified: trunk/scipy/sparse/construct.py
===================================================================
--- trunk/scipy/sparse/construct.py 2008-10-26 01:33:39 UTC (rev 4841)
+++ trunk/scipy/sparse/construct.py 2008-10-26 01:43:51 UTC (rev 4842)
@@ -9,9 +9,7 @@
from warnings import warn
-import numpy
-from numpy import ones, arange, intc, asarray, rank, zeros, \
- cumsum, concatenate, empty
+import numpy as np
from sputils import upcast
@@ -84,28 +82,28 @@
"""
if format in ['csr','csc']:
- indptr = arange(n+1, dtype=intc)
- indices = arange(n, dtype=intc)
- data = ones(n, dtype=dtype)
+ indptr = np.arange(n+1, dtype=np.intc)
+ indices = np.arange(n, dtype=np.intc)
+ data = np.ones(n, dtype=dtype)
cls = eval('%s_matrix' % format)
return cls((data,indices,indptr),(n,n))
elif format == 'coo':
- row = arange(n, dtype=intc)
- col = arange(n, dtype=intc)
- data = ones(n, dtype=dtype)
+ row = np.arange(n, dtype=np.intc)
+ col = np.arange(n, dtype=np.intc)
+ data = np.ones(n, dtype=dtype)
return coo_matrix((data,(row,col)),(n,n))
elif format == 'dia':
- data = ones(n, dtype=dtype)
+ data = np.ones(n, dtype=dtype)
diags = [0]
- return dia_matrix( (data,diags), shape=(n,n) )
+ return dia_matrix((data,diags), shape=(n,n))
else:
- return identity( n, dtype=dtype, format='csr').asformat(format)
+ return identity(n, dtype=dtype, format='csr').asformat(format)
def eye(m, n, k=0, dtype='d', format=None):
"""eye(m, n) returns a sparse (m x n) matrix where the k-th diagonal
is all ones and everything else is zeros.
"""
- diags = ones((1, m), dtype=dtype)
+ diags = np.ones((1, m), dtype=dtype)
return spdiags(diags, k, m, n).asformat(format)
def kron(A, B, format=None):
@@ -148,7 +146,7 @@
#B is fairly dense, use BSR
A = csr_matrix(A,copy=True)
- output_shape = (A.shape[0]*B.shape[0],A.shape[1]*B.shape[1])
+ output_shape = (A.shape[0]*B.shape[0], A.shape[1]*B.shape[1])
if A.nnz == 0 or B.nnz == 0:
# kronecker product is the zero matrix
@@ -158,11 +156,11 @@
data = A.data.repeat(B.size).reshape(-1,B.shape[0],B.shape[1])
data = data * B
- return bsr_matrix((data,A.indices,A.indptr),shape=output_shape)
+ return bsr_matrix((data,A.indices,A.indptr), shape=output_shape)
else:
#use COO
A = coo_matrix(A)
- output_shape = (A.shape[0]*B.shape[0],A.shape[1]*B.shape[1])
+ output_shape = (A.shape[0]*B.shape[0], A.shape[1]*B.shape[1])
if A.nnz == 0 or B.nnz == 0:
# kronecker product is the zero matrix
@@ -231,7 +229,7 @@
return (L+R).asformat(format) #since L + R is not always same format
-def hstack( blocks, format=None, dtype=None ):
+def hstack(blocks, format=None, dtype=None):
"""Stack sparse matrices horizontally (column wise)
Parameters
@@ -256,7 +254,7 @@
"""
return bmat([blocks], format=format, dtype=dtype)
-def vstack( blocks, format=None, dtype=None ):
+def vstack(blocks, format=None, dtype=None):
"""Stack sparse matrices vertically (row wise)
Parameters
@@ -282,7 +280,7 @@
"""
return bmat([ [b] for b in blocks ], format=format, dtype=dtype)
-def bmat( blocks, format=None, dtype=None ):
+def bmat(blocks, format=None, dtype=None):
"""Build a sparse matrix from sparse sub-blocks
Parameters
@@ -313,16 +311,16 @@
"""
- blocks = asarray(blocks, dtype='object')
+ blocks = np.asarray(blocks, dtype='object')
- if rank(blocks) != 2:
+ if np.rank(blocks) != 2:
raise ValueError('blocks must have rank 2')
M,N = blocks.shape
- block_mask = zeros( blocks.shape, dtype='bool' )
- brow_lengths = zeros( blocks.shape[0], dtype=int )
- bcol_lengths = zeros( blocks.shape[1], dtype=int )
+ block_mask = np.zeros(blocks.shape, dtype=np.bool)
+ brow_lengths = np.zeros(blocks.shape[0], dtype=np.intc)
+ bcol_lengths = np.zeros(blocks.shape[1], dtype=np.intc)
# convert everything to COO format
for i in range(M):
@@ -355,12 +353,12 @@
if dtype is None:
dtype = upcast( *tuple([A.dtype for A in blocks[block_mask]]) )
- row_offsets = concatenate(([0],cumsum(brow_lengths)))
- col_offsets = concatenate(([0],cumsum(bcol_lengths)))
+ row_offsets = np.concatenate(([0], np.cumsum(brow_lengths)))
+ col_offsets = np.concatenate(([0], np.cumsum(bcol_lengths)))
- data = empty(nnz, dtype=dtype)
- row = empty(nnz, dtype=intc)
- col = empty(nnz, dtype=intc)
+ data = np.empty(nnz, dtype=dtype)
+ row = np.empty(nnz, dtype=np.intc)
+ col = np.empty(nnz, dtype=np.intc)
nnz = 0
for i in range(M):
@@ -376,8 +374,8 @@
nnz += A.nnz
- shape = (sum(brow_lengths),sum(bcol_lengths))
- return coo_matrix( (data, (row, col)), shape=shape ).asformat(format)
+ shape = (np.sum(brow_lengths), np.sum(bcol_lengths))
+ return coo_matrix((data, (row, col)), shape=shape).asformat(format)
@@ -387,13 +385,11 @@
__all__ += [ 'speye','spidentity', 'spkron', 'lil_eye', 'lil_diags' ]
-from numpy import deprecate
+spkron = np.deprecate(kron, oldname='spkron', newname='scipy.sparse.kron')
+speye = np.deprecate(eye, oldname='speye', newname='scipy.sparse.eye')
+spidentity = np.deprecate(identity, oldname='spidentity', newname='scipy.sparse.identity')
-spkron = deprecate(kron, oldname='spkron', newname='scipy.sparse.kron')
-speye = deprecate(eye, oldname='speye', newname='scipy.sparse.eye')
-spidentity = deprecate(identity, oldname='spidentity', newname='scipy.sparse.identity')
-
def lil_eye((r,c), k=0, dtype='d'):
"""Generate a lil_matrix of dimensions (r,c) with the k-th
diagonal set to 1.
@@ -413,13 +409,11 @@
warn("lil_eye is deprecated." \
"use scipy.sparse.eye(r, c, k, format='lil') instead", \
DeprecationWarning)
- return eye(r,c,k,dtype=dtype,format='lil')
+ return eye(r, c, k, dtype=dtype, format='lil')
-from numpy import clip
-from itertools import izip
#TODO remove this function
-def lil_diags(diags,offsets,(m,n),dtype='d'):
+def lil_diags(diags, offsets, (m,n), dtype='d'):
"""Generate a lil_matrix with the given diagonals.
Parameters
@@ -449,7 +443,7 @@
raise ValueError("Number of diagonals provided should "
"agree with offsets.")
- sort_indices = numpy.argsort(offsets_unsorted)
+ sort_indices = np.argsort(offsets_unsorted)
diags = [diags_unsorted[k] for k in sort_indices]
offsets = [offsets_unsorted[k] for k in sort_indices]
@@ -459,8 +453,10 @@
"diagonal %s." % k)
out = lil_matrix((m,n),dtype=dtype)
+
+ from itertools import izip
for k,diag in izip(offsets,diags):
- for ix,c in enumerate(xrange(clip(k,0,n),clip(m+k,0,n))):
+ for ix,c in enumerate(xrange(np.clip(k,0,n),np.clip(m+k,0,n))):
out.rows[c-k].append(c)
out.data[c-k].append(diag[ix])
return out
More information about the Scipy-svn
mailing list