更新时间:2021-08-05 17:57:54
封面
版权页
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files eBooks discount offers and more
Preface
What this book is
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Chapter 1. A Tour of Interactive Computing with IPython
Introduction
Introducing the IPython notebook
Getting started with exploratory data analysis in IPython
Introducing the multidimensional array in NumPy for fast array computations
Creating an IPython extension with custom magic commands
Mastering IPython's configuration system
Creating a simple kernel for IPython
Chapter 2. Best Practices in Interactive Computing
Choosing (or not) between Python 2 and Python 3
Efficient interactive computing workflows with IPython
Learning the basics of the distributed version control system Git
A typical workflow with Git branching
Ten tips for conducting reproducible interactive computing experiments
Writing high-quality Python code
Writing unit tests with nose
Debugging your code with IPython
Chapter 3. Mastering the Notebook
Teaching programming in the notebook with IPython blocks
Converting an IPython notebook to other formats with nbconvert
Adding custom controls in the notebook toolbar
Customizing the CSS style in the notebook
Using interactive widgets – a piano in the notebook
Creating a custom JavaScript widget in the notebook – a spreadsheet editor for pandas
Processing webcam images in real time from the notebook
Chapter 4. Profiling and Optimization
Evaluating the time taken by a statement in IPython
Profiling your code easily with cProfile and IPython
Profiling your code line-by-line with line_profiler
Profiling the memory usage of your code with memory_profiler
Understanding the internals of NumPy to avoid unnecessary array copying
Using stride tricks with NumPy
Implementing an efficient rolling average algorithm with stride tricks
Making efficient array selections in NumPy
Processing huge NumPy arrays with memory mapping
Manipulating large arrays with HDF5 and PyTables
Manipulating large heterogeneous tables with HDF5 and PyTables
Chapter 5. High-performance Computing
Accelerating pure Python code with Numba and just-in-time compilation
Accelerating array computations with Numexpr
Wrapping a C library in Python with ctypes
Accelerating Python code with Cython
Optimizing Cython code by writing less Python and more C
Releasing the GIL to take advantage of multicore processors with Cython and OpenMP
Writing massively parallel code for NVIDIA graphics cards (GPUs) with CUDA
Writing massively parallel code for heterogeneous platforms with OpenCL
Distributing Python code across multiple cores with IPython
Interacting with asynchronous parallel tasks in IPython
Parallelizing code with MPI in IPython
Trying the Julia language in the notebook
Chapter 6. Advanced Visualization
Making nicer matplotlib figures with prettyplotlib
Creating beautiful statistical plots with seaborn
Creating interactive web visualizations with Bokeh
Visualizing a NetworkX graph in the IPython notebook with D3.js
Converting matplotlib figures to D3.js visualizations with mpld3
Getting started with Vispy for high-performance interactive data visualizations
Chapter 7. Statistical Data Analysis
Exploring a dataset with pandas and matplotlib
Getting started with statistical hypothesis testing – a simple z-test
Getting started with Bayesian methods
Estimating the correlation between two variables with a contingency table and a chi-squared test
Fitting a probability distribution to data with the maximum likelihood method
Estimating a probability distribution nonparametrically with a kernel density estimation
Fitting a Bayesian model by sampling from a posterior distribution with a Markov chain Monte Carlo method
Analyzing data with the R programming language in the IPython notebook
Chapter 8. Machine Learning
Getting started with scikit-learn
Predicting who will survive on the Titanic with logistic regression
Learning to recognize handwritten digits with a K-nearest neighbors classifier
Learning from text – Naive Bayes for Natural Language Processing
Using support vector machines for classification tasks
Using a random forest to select important features for regression
Reducing the dimensionality of a dataset with a principal component analysis
Detecting hidden structures in a dataset with clustering
Chapter 9. Numerical Optimization
Finding the root of a mathematical function