The Best Python Books of 2014

We’re not even halfway through 2014 yet, but there have been some really amazing Python books released this year that have not been getting much attention.

Some of these books are related to computer vision, some to machine learning and statistical analysis, and others to parallel computing.

While not all of these books are directly related to building content based image retrieval systems or image search engines, they are tangentially related in one way or another.

For instance, how are you going to deploy an image search engine? By using a Python web framework, of course.

And how do you intend on indexing your dataset of images? I would hope that you’re using parallel computing.

Definitely take a second to check out these books. You won’t be disappointed.

And if you think I’m missing a particularly important book, leave a comment or send me a message.

The Best Python books of 2014

 Parallel Programming with Python#1. Parallel Programming with Python

If you’re a reader of this blog, you know that I love hands-on, easy to follow tutorials, and guides to solving problems. And let’s face it, parallel computing makes sense on both a theoretical and practical level. But the big question is, how do you actually do it?

This book answers all your parallel computing questions and discuses pipes and queues, distributed tasks using one of my favorite Python packages, celery, and how to perform asynchronous I/O.

In the context of computer vision and image search engines, parallel computing is practically a must. Imagine that we are tasked with extracting features from a dataset with millions of images. Indexing this dataset would take weeks, even months, on a single core machine.

The solution is to distribute the indexing across multiple processes and even multiple machines.

And in order to index images in parallel across multiple process and machines, you first need to understand how you practically do this.

I highly recommend this book and suggest you add it to your reading list.


matplotlib Plotting Cookbook#2. Matplotlib Plotting Cookbook

Think back to my top 9 favorite Python libraries for building image search engines post.

Do you know which Python package made the cut?

That’s right. Matplotlib.

Back when I was running experiments and gathering results for my dissertation, matplotlib was always there to make plotting simple and easy.

Whether you are a scientific researcher publishing your results, a student at a university working on a project, or a programmer or developer working the 9-to-5, you’ve likely had to generate some plots and figures in your lifetime.

And while the documentation for matplotlib is fantastic, you just can’t beat the cookbook approach — actual Python scripts to solve actual plotting problems using matplotlib.

Check out this book and let me know what you think.


Getting Started with Beautiful Soup#3. Getting Started with Beautiful Soup

Before you can even think about building a content based image retrieval system or an image search engine, there is one paramount, absolutely critical step you must take first.

And that step is…gathering your dataset.

Makes sense, right?

You can’t build an image search engine if you don’t have anything to search against!

In some cases, your dataset may already exist for you. This is especially true if you are doing research in academia and need to compare your results to other methods utilizing a common dataset.

But on the business, enterprise, and startup side of things, this isn’t always true.

Here’s an example from my own personal experience…

When I first built Chic Engine, I had to create a web crawler to go out and scrape the webpages and images associated with fashion content, like shirts, shoes, jackets, etc.

In order to create this web crawler, I utilized Beautiful Soup, which makes parsing and navigating the DOM (Document Object Model) tree dead simple.

Honestly, it took me less than 30 minutes to create a crawler to scrape both Amazon and ShopStyle for the latest fashion finds. Thank you, Beautiful Soup.

Once I had my screen scrapers coded up, I utilized multi-threading and multi-processing methods (similar to what is discussed in Parallel Programming in Python mentioned above) to quickly crawl and scrape the web from my content.

After I had scraped all the data I needed, I indexed my dataset using (once again) parallel methods.

Noticing a parallel computing trend here?

All of this wouldn’t have been possible without the Beautiful Soup package.


Flask Web Development#4. Flask Web Development: Developing Web Applications with Python

If it’s not on the web, then it probably doesn’t exist.

That’s not exactly a true statement, but I think you get my sentiment.

For example, let’s say that you just built the next big startup.

Or better yet, the next Google Image Search or TinEye.

How are you going to get it out there? How are users going to utilize your new technology?

You’ll likely be putting together some sort of website and maybe even an API wrapped around it.

In order to do that, you’ll likely need a Python web-framework.

But which one do you choose?

While I firmly root myself in the Django camp, this book on the Flask micro-framework will have you deploying your new algorithms to the web in no time.

And speaking of Django, I highly recommend picking up a copy of Two Scoops of Django 1.6 — Daniel Greenfeld and Audrey Roy have done a phenomenal job putting this book together and is a must own for Django developers.


Statistics Data Mining and Machine Learning#5. Statistics, Data Mining, and Machine Learning in Astronomy: A Practical Python Guide for the Analysis of Survey Data

How big is “big data”? What does it mean for data to be “big”?

And is big data, like the cake, just a lie?

While we all may have different definitions for big data, one thing is for sure: the volume of data in which astronomers and astrophysicists interact with is reaching the petabyte domain.

Tell me, how well do your algorithms scale?

Can they (efficiently) handle a petabyte of data?

If you’re working with a ton of data, the Python code and datasets associated with Statistics, Data Mining, and Machine Learning is well worth the look.


Raspberry Pi Cookbook#6. Raspberry Pi Cookbook for Python Programmers

Personally, I find that I learn the best when I’m getting my hands dirty — when I’m neck deep in the code and I’m just trying to tread water.

That’s why I’m such a big fan of programming cookbooks…

You get to jump right in to practical, working examples. You can to break the code. And then get it working again, all while tweaking it to your liking.

If you’ve been considering tinkering with Raspberry Pi, definitely check out this book by Tim Cox.


Practical Python and OpenCV#7. Practical Python and OpenCV

Alright. I’m clearly biased. But…

If you’ve ever been curious about learning the basics of computer vision and image processing using OpenCV and Python, then this is the book for you.

And I can teach you the basics in a single weekend.

I know, it sounds crazy.

See, Practical Python and OpenCV covers the fundamentals of computer vision and image processing. I’ve included tons of code examples that allow you to get your hands dirty, quickly and easily.

Seriously, this is your guaranteed quick start guide to learning the fundamentals of computer vision and image processing using Python and OpenCV. It doesn’t matter if you’re a developer, programmer, or student — I can teach you the fundamentals in a single weekend.

So if you’re even remotely interested in computer vision and how to make machines see and interpret photos and images, take a second to check out my book.

It won’t disappoint, I promise.


So there you have it!

The best Python books of 2014 (thus far anyway)!

This year is not even halfway over and we already have some phenomenal Python content to digest. Honestly, it just shows how dedicated and great the Python community is.

Anyway, if there is a book that you think I am missing on this list, feel free to leave a comment or shoot me a message. I would be happy to chat.

, , , , , , , , , ,

8 Responses to The Best Python Books of 2014

  1. kumar99 May 12, 2014 at 10:39 pm #

    Two Scoops of Django 1.6?

    • Adrian Rosebrock May 13, 2014 at 7:01 am #

      Wow, fully revised and everything! Django is my by far my favorite web framework. I’ll have to update this post to include Two Scoops of Django. Thanks for bringing it to my attention!

  2. Michael May 13, 2014 at 12:39 am #

    I disagree with you. The Practical Python and OpenCV should be listed as #1 as it is by far one of the best python books I have ever read!

    • Adrian Rosebrock May 13, 2014 at 6:58 am #

      😀 Thank you so much! I’m glad you’re enjoying it!

  3. Jan Palach July 1, 2014 at 10:14 pm #

    Thanks Adrian!

  4. Mikko Leppänen September 5, 2014 at 5:41 am #

    I would definitely recommend reading High Performance Python Practical Performant Programming for Humans. If you really care about code performance, I believe that you will benefit from this book.

    • Adrian Rosebrock September 5, 2014 at 8:01 am #

      Thanks for the tip!


  1. Win FREE copies of the 13 BEST Python books - September 24, 2014

    […] this year I posted about the top 7 Python books of 2014 (thus […]

Before you leave a comment...

Hey, Adrian here, author of the PyImageSearch blog. I'd love to hear from you, but before you submit a comment, please follow these guidelines:

  1. If you have a question, read the comments first. You should also search this page (i.e., ctrl + f) for keywords related to your question. It's likely that I have already addressed your question in the comments.
  2. If you are copying and pasting code/terminal output, please don't. Reviewing another programmers’ code is a very time consuming and tedious task, and due to the volume of emails and contact requests I receive, I simply cannot do it.
  3. Be respectful of the space. I put a lot of my own personal time into creating these free weekly tutorials. On average, each tutorial takes me 15-20 hours to put together. I love offering these guides to you and I take pride in the content I create. Therefore, I will not approve comments that include large code blocks/terminal output as it destroys the formatting of the page. Kindly be respectful of this space.
  4. Be patient. I receive 200+ comments and emails per day. Due to spam, and my desire to personally answer as many questions as I can, I hand moderate all new comments (typically once per week). I try to answer as many questions as I can, but I'm only one person. Please don't be offended if I cannot get to your question
  5. Do you need priority support? Consider purchasing one of my books and courses. I place customer questions and emails in a separate, special priority queue and answer them first. If you are a customer of mine you will receive a guaranteed response from me. If there's any time left over, I focus on the community at large and attempt to answer as many of those questions as I possibly can.

Thank you for keeping these guidelines in mind before submitting your comment.

Leave a Reply