I Getting started with Python for science
Scientific computing with tools and workflow
Why Python?
Scientific Python building blocks
The interactive workflow: IPython and a text editor
The Python language
First steps
Basic types
Control Flow
Defining functions
Reusing code: scripts and modules
Input and Output
Standard Library
Exception handling in Python
Object-oriented programming (OOP)
NumPy: creating and manipulating numerical data
The Numpy array object
Numerical operations on arrays
More elaborate arrays
Advanced operations
Some exercises
Matplotlib: plotting
Introduction
Simple plot
Figures, Subplots, Axes and Ticks
Other Types of Plots: examples and exercises
Beyond this tutorial
Quick references
Scipy : high-level scientific computing
File input/output: scipy.io
Special functions: scipy.special
Linear algebra operations: scipy.linalg
Fast Fourier transforms: scipy.fftpack
Optimization and fit: scipy.optimize
Statistics and random numbers: scipy.stats
Interpolation: scipy.interpolate
Numerical integration: scipy.integrate
Signal processing: scipy.signal
Image processing: scipy.ndimage
Summary exercises on scientific computing
Getting help and finding documentation
II Advanced topics
Advanced Python Constructs
Iterators, generator expressions and generators
Decorators
Context managers
Advanced Numpy
Life of ndarray
Universal functions
Interoperability features
Array siblings: chararray, maskedarray, matrix
Summary
Contributing to Numpy/Scipy
Debugging code
Avoiding bugs
Debugging workflow
Using the Python debugger
Debugging segmentation faults using gdb
Optimizing code
Optimization workflow
Profiling Python code
Making code go faster
Writing faster numerical code
Sparse Matrices in SciPy
Introduction
Storage Schemes
Linear System Solvers
Other Interesting Packages
Image manipulation and processing using Numpy and Scipy
Opening and writing to image files
Displaying images
Basic manipulations
Image filtering
Feature extraction
Measuring objects properties: ndimage.measurements
Mathematical optimization: finding minima of functions
Knowing your problem
A review of the different optimizers
Practical guide to optimization with scipy
Special case: non-linear least-squares
Optimization with constraints
Interfacing with C
Introduction
Python-C-Api
Ctypes
SWIG
Cython
Summary
Further Reading and References
Exercises
III Packages and applications
Statistics in Python
Data representation and interaction
Hypothesis testing: comparing two groups
Linear models, multiple factors, and analysis of variance
More visualization: seaborn for statistical exploration
Testing for interactions
Sympy : Symbolic Mathematics in Python
First Steps with SymPy
Algebraic manipulations
Calculus
Equation solving
Linear Algebra
Scikit-image: image processing
Introduction and concepts
Input/output, data types and colorspaces
Image preprocessing / enhancement
Image segmentation
Measuring regions' properties
Data visualization and interaction
Feature extraction for computer vision
Traits: building interactive dialogs
Introduction
Example
What are Traits
3D plotting with Mayavi
Mlab: the scripting interface
Interactive work
Slicing and dicing data: sources, modules and filters
Animating the data
Making interactive dialogs
Putting it together
scikit-learn: machine learning in Python
Loading an example dataset
Classification
Clustering: grouping observations together
Dimension Reduction with Principal Component Analysis
Putting it all together: face recognition
Linear model: from regression to sparsity
Model selection: choosing estimators and their parameters
Index