Scipy Lecture Notes¶
One document to learn numerics, science, and data with Python¶
Tutorials on the scientific Python ecosystem: a quick introduction to central tools and techniques. The different chapters each correspond to a 1 to 2 hours course with increasing level of expertise, from beginner to expert.
- 1. Getting started with Python for science
- 1.1. Scientific computing with tools and workflow
- 1.2. The Python language
- 1.2.1. First steps
- 1.2.2. Basic types
- 1.2.3. Control Flow
- 1.2.4. Defining functions
- 1.2.5. Reusing code: scripts and modules
- 1.2.6. Input and Output
- 1.2.7. Standard Library
- 1.2.8. Exception handling in Python
- 1.2.9. Object-oriented programming (OOP)
- 1.3. NumPy: creating and manipulating numerical data
- 1.3.1. The Numpy array object
- 1.3.2. Numerical operations on arrays
- 1.3.3. More elaborate arrays
- 1.3.4. Advanced operations
- 1.3.5. Some exercises
- 1.4. Matplotlib: plotting
- 1.4.1. Introduction
- 1.4.2. Simple plot
- 1.4.2.1. Plotting with default settings
- 1.4.2.2. Instantiating defaults
- 1.4.2.3. Changing colors and line widths
- 1.4.2.4. Setting limits
- 1.4.2.5. Setting ticks
- 1.4.2.6. Setting tick labels
- 1.4.2.7. Moving spines
- 1.4.2.8. Adding a legend
- 1.4.2.9. Annotate some points
- 1.4.2.10. Devil is in the details
- 1.4.3. Figures, Subplots, Axes and Ticks
- 1.4.4. Other Types of Plots: examples and exercises
- 1.4.5. Beyond this tutorial
- 1.4.6. Quick references
- 1.5. Scipy : high-level scientific computing
- 1.5.1. File input/output:
scipy.io
- 1.5.2. Special functions:
scipy.special
- 1.5.3. Linear algebra operations:
scipy.linalg
- 1.5.4. Fast Fourier transforms:
scipy.fftpack
- 1.5.5. Statistics and random numbers:
scipy.stats
- 1.5.6. Interpolation:
scipy.interpolate
- 1.5.7. Optimization and fit:
scipy.optimize
- 1.5.8. Numerical integration:
scipy.integrate
- 1.5.9. Summary exercises on scientific computing
- 1.5.1. File input/output:
- 1.6. Getting help and finding documentation
- 2. Advanced topics
- 2.1. Advanced Python Constructs
- 2.1.1. Iterators, generator expressions and generators
- 2.1.2. Decorators
- 2.1.2.1. Replacing or tweaking the original object
- 2.1.2.2. Decorators implemented as classes and as functions
- 2.1.2.3. Copying the docstring and other attributes of the original function
- 2.1.2.4. Examples in the standard library
- 2.1.2.5. Deprecation of functions
- 2.1.2.6. A
while
-loop removing decorator - 2.1.2.7. A plugin registration system
- 2.1.3. Context managers
- 2.2. Advanced Numpy
- 2.2.1. Life of ndarray
- 2.2.2. Universal functions
- 2.2.3. Interoperability features
- 2.2.4. Array siblings:
chararray
,maskedarray
,matrix
- 2.2.5. Summary
- 2.2.6. Contributing to Numpy/Scipy
- 2.3. Debugging code
- 2.4. Optimizing code
- 2.5. Sparse Matrices in SciPy
- 2.5.1. Introduction
- 2.5.2. Storage Schemes
- 2.5.2.1. Common Methods
- 2.5.2.2. Sparse Matrix Classes
- 2.5.2.3. Summary
- 2.5.3. Linear System Solvers
- 2.5.4. Other Interesting Packages
- 2.6. Image manipulation and processing using Numpy and Scipy
- 2.7. Mathematical optimization: finding minima of functions
- 2.7.1. Knowing your problem
- 2.7.2. A review of the different optimizers
- 2.7.3. Practical guide to optimization with scipy
- 2.7.4. Special case: non-linear least-squares
- 2.7.5. Optimization with constraints
- 2.8. Interfacing with C
- 2.1. Advanced Python Constructs
- 3. Packages and applications
- 3.1. Statistics in Python
- 3.2. Sympy : Symbolic Mathematics in Python
- 3.3. Scikit-image: image processing
- 3.4. Traits: building interactive dialogs
- 3.5. 3D plotting with Mayavi
- 3.6. scikit-learn: machine learning in Python
- 3.6.1. Loading an example dataset
- 3.6.2. Classification
- 3.6.3. Clustering: grouping observations together
- 3.6.4. Dimension Reduction with Principal Component Analysis
- 3.6.5. Putting it all together: face recognition
- 3.6.6. Linear model: from regression to sparsity
- 3.6.7. Model selection: choosing estimators and their parameters