Python for Scientists and Engineers

Python for Scientists and Engineers is now free to read online. The table of contents is below, but please read this important info before.

Python for Scientists and Engineers was the first book I wrote, and the one I still get queries about. It was out of print for a long time, till now, and has been updated with help from the community.

There are a few new sections, using the highly technical name of New Stuff. The biggest change has been to the Machine Learning section. I have added some of my best articles here, and some new stuff.

How to read this book

This book assumes you know Python or some other programming language already. It’s written for intermediate programmers, not complete beginners.

If you are new to Python, start with the  Beginners Start Here section. I give you a quick introduction to Python using a simple word counter example (which assumes you already know some programming), then introduce libraries like Numpy/Pandas. If you have never used these libraries, start here as well.


90% of the problems people face will be installing libraries, so make sure you read the installation section.

If you still face problems, make sure you spend at least 2-3 hours Googling for the solution before you ask for help.

If there are any bugs/typos, please contact me.

Special Thanks to the people who helped update this book:

Major Contributors:

Quan Nguyen LinkedIn Github

Paras Sharma Linkedin Twitter Github

Adonis Settouf Blog Github

Vishwanath Subramanian Personal Site  Linkedin 

David Dorff  Linkedin

Jurdanas Kriauciunas LinkedIn Twitter Github

Minor Contributors:

Bach Than Trien  Github


While the book is free, I do retain all copyrights. You must not post this book anywhere. The exception is the code. It’s released under MIT, so feel free to use it in your own projects.

Source Code: The code for the book is here.

And now, to the book:

Intro: Start here

Installing the libraries required for the book

Beginners Start Here:

Create a Word Counter in Python

An introduction to Numpy and Matplotlib

Introduction to Pandas with Practical Examples (New)

Main Book

Image and Video Processing in Python

Data Analysis with Pandas

Audio and Digital Signal Processing (DSP)

Control Your Raspberry Pi From Your Phone / Tablet

Machine Learning Section

Machine Learning with an Amazon like Recommendation Engine

Machine Learning New Stuff

Machine Learning For Complete Beginners: Learn how to predict how many Titanic survivors using machine learning. No previous knowledge needed!

Cross Validation and Model Selection: In which we look at cross validation, and how to choose between different machine learning algorithms. Working with the Iris flower dataset and the Pima diabetes dataset.

Natural Language Processing

0. Introduction to NLP and Sentiment Analysis

1. Natural Language Processing with NTLK

2. Intro to NTLK, Part 2

3. Build a sentiment analysis program

4. Sentiment Analysis with Twitter

5. Analysing the Enron Email Corpus: The Enron Email corpus has half a million files spread over 2.5 GB. When looking at data this size, the question is, where do you even start?

6. Build a Spam Filter using the Enron Corpus