Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
124 views

Scipy Cheat Sheet Python For Data Science: Linear Algebra

The document discusses the SciPy library which provides mathematical algorithms and functions built on NumPy. It summarizes key linear algebra capabilities in SciPy including creating and manipulating matrices, basic matrix routines like addition/multiplication, inverses, determinants, solving linear problems, and other functions like exponentials, logarithms, and trigonometric functions applied to matrices.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
124 views

Scipy Cheat Sheet Python For Data Science: Linear Algebra

The document discusses the SciPy library which provides mathematical algorithms and functions built on NumPy. It summarizes key linear algebra capabilities in SciPy including creating and manipulating matrices, basic matrix routines like addition/multiplication, inverses, determinants, solving linear problems, and other functions like exponentials, logarithms, and trigonometric functions applied to matrices.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

> Linear Algebra Also see NumPy

Python For Data Science


You’ll use the linalg and sparse modules.

Note that scipy.linalg contains and expands on numpy.linalg.


Matrix Functions

SciPy Cheat Sheet


Addition
>>> from scipy import linalg, sparse
>>> np.add(A,D) #Addition

Creating Matrices Subtraction


Learn SciPy online at www.DataCamp.com >>> np.subtract(A,D) #Subtraction

>>> A = np.matrix(np.random.random((2,2)))
Division
>>> B = np.asmatrix(b)
>>> np.divide(A,D) #Division
>>> C = np.mat(np.random.random((10,5)))

>>> D = np.mat([[3,4], [5,6]]) Multiplication


>>> np.multiply(D,A) #Multiplication

SciPy Basic Matrix Routines


>>>
>>>
>>>
np.dot(A,D) #Dot product

np.vdot(A,D) #Vector dot product

np.inner(A,D) #Inner product

Inverse >>> np.outer(A,D) #Outer product

The SciPy library is one of the core packages for


>>> np.tensordot(A,D) #Tensor dot product

>>> A.I #Inverse


>>> np.kron(A,D) #Kronecker product
scientific computing that provides mathematical
>>> linalg.inv(A) #Inverse

algorithms and convenience functions built on the


>>> A.T #Tranpose matrix
Exponential Functions
>>> A.H #Conjugate transposition
>>> linalg.expm(A) #Matrix exponential

NumPy extension of Python. >>> np.trace(A) #Trace >>> linalg.expm2(A) #Matrix exponential (Taylor Series)

Norm >>> linalg.expm3(D) #Matrix exponential (eigenvalue decomposition)

>>> linalg.norm(A) #Frobenius norm


Logarithm Function

> Interacting With NumPy Also see NumPy >>> linalg.norm(A,1) #L1 norm (max column sum)

>>> linalg.norm(A,np.inf) #L inf norm (max row sum)


>>> linalg.logm(A) #Matrix logarithm
Trigonometric Functions
Rank >>> linalg.sinm(D) Matrix sine

>>> import numpy as np

>>> a = np.array([1,2,3])
>>> np.linalg.matrix_rank(C) #Matrix rank >>> linalg.cosm(D) Matrix cosine

>>> b = np.array([(1+5j,2j,3j), (4j,5j,6j)])


>>> linalg.tanm(A) Matrix tangent
Determinant
>>> c = np.array([[(1.5,2,3), (4,5,6)], [(3,2,1), (4,5,6)]]) Hyperbolic Trigonometric Functions
>>> linalg.det(A) #Determinant
>>> linalg.sinhm(D) #Hypberbolic matrix sine

Solving linear problems


Index Tricks >>> linalg.solve(A,b) #Solver for dense matrices

>>> linalg.coshm(D) #Hyperbolic matrix cosine

>>> linalg.tanhm(A) #Hyperbolic matrix tangent


>>> E = np.mat(a).T #Solver for dense matrices

>>> np.mgrid[0:5,0:5] #Create a dense meshgrid


>>> linalg.lstsq(D,E) #Least-squares solution to linear matrix equation Matrix Sign Function
>>> np.ogrid[0:2,0:2] #Create an open meshgrid
>>> np.sigm(A) #Matrix sign function
>>> np.r_[[3,[0]*5,-1:1:10j] #Stack arrays vertically (row-wise)
Generalized inverse
>>> np.c_[b,c] #Create stacked column-wise arrays >>> linalg.pinv(C) #Compute the pseudo-inverse of a matrix (least-squares solver)
Matrix Square Root
>>> linalg.pinv2(C) #Compute the pseudo-inverse of a matrix (SVD) >>> linalg.sqrtm(A) #Matrix square root

Shape Manipulation Arbitrary Functions


Creating Sparse Matrices >>> linalg.funm(A, lambda x: x*x) #Evaluate matrix function
>>> np.transpose(b) #Permute array dimensions

>>>
>>>
b.flatten() #Flatten the array

np.hstack((b,c)) #Stack arrays horizontally (column-wise)

>>>
>>>
F = np.eye(3, k=1) #Create a 2X2 identity matrix

G = np.mat(np.identity(2)) #Create a 2x2 identity matrix


Decompositions
>>> np.vstack((a,b)) #Stack arrays vertically (row-wise)
>>> C[C > 0.5] = 0

>>> np.hsplit(c,2) #Split the array horizontally at the 2nd index


>>> H = sparse.csr_matrix(C) #Compressed Sparse Row matrix
Eigenvalues and Eigenvectors
>>> np.vpslit(d,2) #Split the array vertically at the 2nd index >>> I = sparse.csc_matrix(D) #Compressed Sparse Column matrix
>>> la, v = linalg.eig(A) #Solve ordinary or generalized eigenvalue problem for square matrix

>>> J = sparse.dok_matrix(A) #Dictionary Of Keys matrix


>>> l1, l2 = la #Unpack eigenvalues

>>> E.todense() #Sparse matrix to full matrix

Polynomials >>> sparse.isspmatrix_csc(A) #Identify sparse matrix


>>>
>>>
v[:,0] #First eigenvector

v[:,1] #Second eigenvector

>>> linalg.eigvals(A) #Unpack eigenvalues


>>> from numpy import poly1d

>>> p = poly1d([3,4,5]) #Create a polynomial object Sparse Matrix Routines Singular Value Decomposition
>>> U,s,Vh = linalg.svd(B) #Singular Value Decomposition (SVD)

Inverse >>> M,N = B.shape

Vectorizing Functions >>> sparse.linalg.inv(I) #Inverse >>> Sig = linalg.diagsvd(s,M,N) #Construct sigma matrix in SVD

Norm LU Decomposition
>>> def myfunc(a): if a < 0:
>>> P,L,U = linalg.lu(C) #LU Decomposition
return a*2
>>> sparse.linalg.norm(I) #Norm
else:
Solving linear problems
return a/2

>>> sparse.linalg.spsolve(H,I) #Solver for sparse matrices


>>> np.vectorize(myfunc) #Vectorize functions

Type Handling Sparse Matrix Functions


>>> sparse.linalg.expm(I) #Sparse matrix exponential
>>> np.real(c) #Return the real part of the array elements

>>> np.imag(c) #Return the imaginary part of the array elements

>>>
>>>
np.real_if_close(c,tol=1000) #Return a real array if complex parts close to 0

np.cast['f'](np.pi) #Cast object to a data type Sparse Matrix Decompositions


>>> la, v = sparse.linalg.eigs(F,1) #Eigenvalues and eigenvectors

Other Useful Functions >>> sparse.linalg.svds(H, 2) #SVD

>>> np.angle(b,deg=True) #Return the angle of the complex argument

>>>
>>>
g = np.linspace(0,np.pi,num=5) #Create an array of evenly spaced values(number of samples)

g [3:] += np.pi
> Asking For Help Learn Data Skills Online at
>>>
>>>
np.unwrap(g) #Unwrap

np.logspace(0,10,3) #Create an array of evenly spaced values (log scale)

www.DataCamp.com
>>> np.select([c<4],[c*2]) #Return values from a list of arrays depending on conditions
>>> help(scipy.linalg.diagsvd)

>>> misc.factorial(a) #Factorial


>>> np.info(np.matrix)
>>> misc.comb(10,3,exact=True) #Combine N things taken at k time

>>> misc.central_diff_weights(3) #Weights for Np-point central derivative

>>> misc.derivative(myfunc,1.0) #Find the n-th derivative of a function at a point

You might also like