THIS IS AN EVOLVING WIKI DOCUMENT. If you find an error, or can fill in an empty box, please fix it! If there's something you'd like to see added, just add it.

## General Purpose Equivalents

 MATLAB numpy Notes help func info(func) or help(func) or func? (in Ipython) get help on the function func which func find out where func is defined type func source(func) or func?? (in Ipython) print source for func (if not a native function) a && b a and b short-circuiting logical AND operator (Python native operator); scalar arguments only a || b a or b short-circuiting logical OR operator (Python native operator); scalar arguments only 1*i,1*j,1i,1j 1j complex numbers eps spacing(1) Distance between 1 and the nearest floating point number ode45 scipy.integrate.ode(f).set_integrator('dopri5') integrate an ODE with Runge-Kutta 4,5 ode15s scipy.integrate.ode(f).\set_integrator('vode', method='bdf', order=15) integrate an ODE with BDF

## Linear Algebra Equivalents

The notation mat(...) means to use the same expression as array, but convert to matrix with the mat() type converter.

The notation asarray(...) means to use the same expression as matrix, but convert to array with the asarray() type converter.

 MATLAB numpy.array numpy.matrix Notes ndims(a) ndim(a) or a.ndim get the number of dimensions of a (tensor rank) size(a) shape(a) or a.shape get the "size" of the matrix size(a,n) a.shape[n-1] get the number of elements of the nth dimension of array a. (Note that MATLAB uses 1 based indexing while Python uses 0 based indexing, See note 'INDEXING') [ 1 2 3; 4 5 6 ] array([[1.,2.,3.],[4.,5.,6.]]) mat([[1.,2.,3.],[4.,5.,6.]]) ormat("1 2 3; 4 5 6") 2x3 matrix literal [ a b; c d ] vstack([hstack([a,b]),        hstack([c,d])]) bmat('a b; c d') construct a matrix from blocks a,b,c, and d a(end) a[-1] a[:,-1][0,0] access last element in the 1xn matrix a a(2,5) a[1,4] access element in second row, fifth column a(2,:) a or a[1,:] entire second row of a a(1:5,:) a[0:5] or a[:5] or a[0:5,:] the first five rows of a a(end-4:end,:) a[-5:] the last five rows of a a(1:3,5:9) a[0:3][:,4:9] rows one to three and columns five to nine of a. This gives read-only access. a([2,4,5],[1,3]) a[ix_([1,3,4],[0,2])] rows 2,4 and 5 and columns 1 and 3. This allows the matrix to be modified, and doesn't require a regular slice. a(3:2:21,:) a[ 2:21:2,:] every other row of a, starting with the third and going to the twenty-first a(1:2:end,:) a[ ::2,:] every other row of a, starting with the first a(end:-1:1,:) orflipud(a) a[ ::-1,:] a with rows in reverse order a([1:end 1],:) a[r_[:len(a),0]] a with copy of the first row appended to the end a.' a.transpose() or a.T transpose of a a' a.conj().transpose() ora.conj().T a.H conjugate transpose of a a * b dot(a,b) a * b matrix multiply a .* b a * b multiply(a,b) element-wise multiply a./b a/b element-wise divide a.^3 a**3 power(a,3) element-wise exponentiation (a>0.5) (a>0.5) matrix whose i,jth element is (a_ij > 0.5) find(a>0.5) nonzero(a>0.5) find the indices where (a > 0.5) a(:,find(v>0.5)) a[:,nonzero(v>0.5)] a[:,nonzero(v.A>0.5)] extract the columms of a where vector v > 0.5 a(:,find(v>0.5)) a[:,v.T>0.5] a[:,v.T>0.5)] extract the columms of a where column vector v > 0.5 a(a<0.5)=0 a[a<0.5]=0 a with elements less than 0.5 zeroed out a .* (a>0.5) a * (a>0.5) mat(a.A * (a>0.5).A) a with elements less than 0.5 zeroed out a(:) = 3 a[:] = 3 set all values to the same scalar value y=x y = x.copy() numpy assigns by reference y=x(2,:) y = x[1,:].copy() numpy slices are by reference y=x(:) y = x.flatten(1) turn array into vector (note that this forces a copy) 1:10 arange(1.,11.) or r_[1.:11.] or r_[1:10:10j] mat(arange(1.,11.))or r_[1.:11.,'r'] create an increasing vector see note 'RANGES' 0:9 arange(10.) or r_[:10.] or r_[:9:10j] mat(arange(10.)) or r_[:10.,'r'] create an increasing vector see note 'RANGES' [1:10]' arange(1.,11.)[:, newaxis] r_[1.:11.,'c'] create a column vector zeros(3,4) zeros((3,4)) mat(...) 3x4 rank-2 array full of 64-bit floating point zeros zeros(3,4,5) zeros((3,4,5)) mat(...) 3x4x5 rank-3 array full of 64-bit floating point zeros ones(3,4) ones((3,4)) mat(...) 3x4 rank-2 array full of 64-bit floating point ones eye(3) eye(3) mat(...) 3x3 identity matrix diag(a) diag(a) mat(...) vector of diagonal elements of a diag(a,0) diag(a,0) mat(...) square diagonal matrix whose nonzero values are the elements of a rand(3,4) random.rand(3,4) mat(...) random 3x4 matrix linspace(1,3,4) linspace(1,3,4) mat(...) 4 equally spaced samples between 1 and 3, inclusive [x,y]=meshgrid(0:8,0:5) mgrid[0:9.,0:6.] or meshgrid(r_[0:9.],r_[0:6.] mat(...) two 2D arrays: one of x values, the other of y values ogrid[0:9.,0:6.] or ix_(r_[0:9.],r_[0:6.] mat(...) the best way to eval functions on a grid [x,y]=meshgrid([1,2,4],[2,4,5]) meshgrid([1,2,4],[2,4,5]) mat(...) ix_([1,2,4],[2,4,5]) mat(...) the best way to eval functions on a grid repmat(a, m, n) tile(a, (m, n)) mat(...) create m by n copies of a [a b] concatenate((a,b),1) or hstack((a,b)) or column_stack((a,b)) or c_[a,b] concatenate((a,b),1) concatenate columns of a and b [a; b] concatenate((a,b)) or vstack((a,b)) or r_[a,b] concatenate((a,b)) concatenate rows of a and b max(max(a)) a.max() maximum element of a (with ndims(a)<=2 for matlab) max(a) a.max(0) maximum element of each column of matrix a max(a,[],2) a.max(1) maximum element of each row of matrix a max(a,b) maximum(a, b) compares a and b element-wise, and returns the maximum value from each pair norm(v) sqrt(dot(v,v)) or Sci.linalg.norm(v) or linalg.norm(v) sqrt(dot(v.A,v.A))or Sci.linalg.norm(v)or linalg.norm(v) L2 norm of vector v a & b logical_and(a,b) element-by-element AND operator (Numpy ufunc) see note 'LOGICOPS' a | b logical_or(a,b) element-by-element OR operator (Numpy ufunc) see note 'LOGICOPS' bitand(a,b) a & b bitwise AND operator (Python native and Numpy ufunc) bitor(a,b) a | b bitwise OR operator (Python native and Numpy ufunc) inv(a) linalg.inv(a) inverse of square matrix a pinv(a) linalg.pinv(a) pseudo-inverse of matrix a rank(a) linalg.matrix_rank(a) rank of a matrix a a\b linalg.solve(a,b) if a is squarelinalg.lstsq(a,b) otherwise solution of a x = b for x b/a Solve a.T x.T = b.T instead solution of x a = b for x [U,S,V]=svd(a) U, S, Vh = linalg.svd(a), V = Vh.T singular value decomposition of a chol(a) linalg.cholesky(a).T cholesky factorization of a matrix (chol(a) in matlab returns an upper triangular matrix, but linalg.cholesky(a) returns a lower triangular matrix) [V,D]=eig(a) D,V = linalg.eig(a) eigenvalues and eigenvectors of a [V,D]=eig(a,b) V,D = Sci.linalg.eig(a,b) eigenvalues and eigenvectors of a,b [V,D]=eigs(a,k) find the k largest eigenvalues and eigenvectors of a [Q,R,P]=qr(a,0) Q,R = Sci.linalg.qr(a) mat(...) QR decomposition [L,U,P]=lu(a) L,U = Sci.linalg.lu(a) or LU,P=Sci.linalg.lu_factor(a) mat(...) LU decomposition (note: P(Matlab) == transpose(P(numpy)) ) conjgrad Sci.linalg.cg mat(...) Conjugate gradients solver fft(a) fft(a) mat(...) Fourier transform of a ifft(a) ifft(a) mat(...) inverse Fourier transform of a sort(a) sort(a) or a.sort() mat(...) sort the matrix [b,I] = sortrows(a,i) I = argsort(a[:,i]), b=a[I,:] sort the rows of the matrix regress(y,X) linalg.lstsq(X,y) multilinear regression decimate(x, q) Sci.signal.resample(x, len(x)/q) downsample with low-pass filtering unique(a) unique(a) squeeze(a) a.squeeze()

# Notes

## matlab numpy equivalents More articles about

1. 【 Carry 】NumPy_for_Matlab_Users

Transport from :http://scipy.github.io/old-wiki/pages/NumPy_for_Matlab_Users.html. 1.Introduction MATLAB and NumPy/S ...

2. ubantu16.04+mxnet +opencv+cuda8.0 Environment building

ubantu16.04+mxnet +opencv+cuda8.0 Environment building Suggest : After the environment is built , Don't update the system ( kernel ) Reprint please indicate the source : Picosecond lotus One My installation environment System :ubuntu16.04 ...

3. MXNet Design notes ： Deep learning programming mode comparison

All kinds of deep learning libraries are popular on the market , They have different styles . What are the advantages and disadvantages of these library styles in system optimization and user experience ? The purpose of this article is to compare their differences in programming patterns , Discuss the basic strengths and weaknesses of these models , And what we can learn from it ...

4. tensorflow From getting started to falling a rib Tutorial 2

Build your own first neural network Recognize the number in the picture through the picture of gesture :1) Now use 1080 Zhang 64*64 As a training set 2) use 120 Pictures as test set  Define initialization values def load_dataset(): ...

5. Course 2 (Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization), The third week （Hyperparameter tuning, Batch Normalization and Programming Frameworks） —— 2.Programming assignments

Tensorflow Welcome to the Tensorflow Tutorial! In this notebook you will learn all the basics of Ten ...

6. Distributed machine learning framework ：MxNet

MxNet Official website : http://mxnet.readthedocs.io/en/latest/ Preface : caffe It's excellent dl platform . It affects many related frameworks . cxxnet I learned a lot from caffe Thought . ...

7. Distributed machine learning framework ：MxNet Preface

Original link :MxNet and Caffe What are the advantages and disadvantages between them . Preface : Minerva: Efficient and flexible parallel deep learning engine differ cxxnet The ultimate in speed and ease of use ,Minerva It provides an efficient and flexible platform ...

8. Distributed machine learning framework ：CXXNet

caffe It's excellent dl platform . It affects many related frameworks .        cxxnet I learned a lot from caffe Thought . by comparison ,cxxnet Cleaner in implementation , For example, little dependence , adopt mshadow Templating makes gpu ...

9. matplotlib Basic functions

Data analysis matlab Numpy + scipy + pandas +matplotlib Data calculation + Scientific application + Data cleaning + Data visualization 1 Numpy summary 1 be based on c Linguistic python The numerical algorithm of the interface ...

## Random recommendation

1. About c# Medium console A complete collection of usage

C# And Console   Console.Write   Represents writing a string directly to the console , Don't wrap , You can continue to write next to the previous character .Console.WriteLine   Means to write a string to the console and wrap it .Conso ...

2. javascript Learn the type of citation in lesson 3 object

primary coverage : 1.object Is a base class of all types Instantiate objects : 1. var obj = new Object(); 2. var obj = {}; Set object properties and methods : obj.name = 'he ...

Provide a method based on SoapHeader User defined verification method for , The code is as follows : public class MySoapHeader : System.Web.Services.Protocols.SoapHeader ...

4. C# Character complement

C# Character complement .byte Type of characters , use 5 position 2 A decimal number means , Right alignment , Insufficient 5 position , Zero in front . byte b; Convert.ToString(b, ).PadLeft(, ') .byte Type of characters , use 2 position ...

5. shell review --- File decompression command

You need to deploy your own server , So after applying for space , You need to install it yourself linux own , Install it yourself Apache etc. , So the downloaded compressed file needs to run . I found some unzip commands on the Internet , In particular, I tried the following method to be effective , Make a special note of : use ssh land ...

6. lightoj 1032 The binary dp

Topic link :http://lightoj.com/volume_showproblem.php?problem=1032 #include <cstdio> #include <cst ...

7. CAS Realize the single sign on process

CAS Single sign on Environmental Science client : www.app1.com CAS The server : www.cas-server.com 1. browser : Initiate request www.app1.com 2. client :Authenticat ...

8. Spring annotation ：@Resource、@PreConstruct、@PreDestroy、@Component

To use Spring Annotations , Must be in XML There are properties configured in the file , Tell people you want to use annotations ,Spring The container loads the annotations on the class : <?xml version="1.0" encoding ...

9. php Regular expressions Array

Regular expressions The slash represents the delimiter /^\$/ \$str = " Awesome! 18653378660 了 hi Don't marry well 15165339515 anhui dah Shorty The shooting industry is probably good. Guangdong also bullies me. I'm afraid of HA ";\$reg ...

10. ThreeJS Special effects synthesizer and post-processing channel

I'm going to write a web Interactive lighting, interactive framework . I didn't find any good information , I have been groping for a long time by myself , A little disappointed , But after all, it's something that has been explored , So make a note , Miss the green silk I lost in the past days ( Over your face ). I have already introduced how to make ...