Title: The Best Python Books of 2014 - PyImageSearch

URL Source: https://pyimagesearch.com/2014/05/12/best-python-books-2014/

Published Time: 2014-05-12T14:00:48+00:00

Markdown Content:
Update: Dec 2022

It’s been a long time since we first published this post.

We now have two Python educational products to choose from.

1.  [Computer Vision with Python Book](https://pyimagesearch.com/deep-learning-computer-vision-python-book/)
2.  Comprehensive [Introduction To Python Program](https://pyimagesearch.com/intro-python-course/)

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](https://pyimagesearch.com/contact/).

[![Image 1: Parallel Programming with Python](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20162%20200'%3E%3C/svg%3E)](http://www.amazon.com/Parallel-Programming-Python-Jan-Palach/dp/1783288396/ref=sr_1_2?s=books&ie=UTF8&qid=1399473296&sr=1-2&tag=trndingcom-20)#1. [Parallel Programming with Python](http://www.amazon.com/Parallel-Programming-Python-Jan-Palach/dp/1783288396/ref=sr_1_2?s=books&ie=UTF8&qid=1399473296&sr=1-2&tag=trndingcom-20)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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](http://www.celeryproject.org/), 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.

[![Image 2: matplotlib Plotting Cookbook](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20162%20200'%3E%3C/svg%3E)](http://www.amazon.com/Matplotlib-Plotting-Cookbook-Alexandre-Devert/dp/1849513260/ref=sr_1_1?s=books&ie=UTF8&qid=1399474196&sr=1-1&tag=trndingcom-20)#2. [Matplotlib Plotting Cookbook](http://www.amazon.com/Matplotlib-Plotting-Cookbook-Alexandre-Devert/dp/1849513260/ref=sr_1_1?s=books&ie=UTF8&qid=1399474196&sr=1-1&tag=trndingcom-20)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Think back to my [top 9 favorite Python libraries for building image search engines post](https://pyimagesearch.com/2014/01/12/my-top-9-favorite-python-libraries-for-building-image-search-engines/ "My Top 9 Favorite Python Libraries for Building Image Search Engines").

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.

[![Image 3: Getting Started with Beautiful Soup](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20162%20200'%3E%3C/svg%3E)](http://www.amazon.com/dp/1783289554/?tag=packtpubli-20&tag=trndingcom-20)#3. [Getting Started with Beautiful Soup](http://www.amazon.com/dp/1783289554/?tag=packtpubli-20&tag=trndingcom-20)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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…g_athering 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](http://www.chicengine.com/), 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](http://www.crummy.com/software/BeautifulSoup/) package.

[![Image 4: Flask Web Development](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20162%20213'%3E%3C/svg%3E)](http://www.amazon.com/Flask-Web-Development-Developing-Applications-ebook/dp/B00K00W9LI/ref=zg_bsnr_285856_1&tag=trndingcom-20)#4. [Flask Web Development: Developing Web Applications with Python](http://www.amazon.com/Flask-Web-Development-Developing-Applications-ebook/dp/B00K00W9LI/ref=zg_bsnr_285856_1&tag=trndingcom-20)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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](https://www.djangoproject.com/) camp, this book on the [Flask](http://flask.pocoo.org/) 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](http://twoscoopspress.com/products/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.

[![Image 5: Statistics Data Mining and Machine Learning](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20162%20230'%3E%3C/svg%3E)](http://www.amazon.com/Statistics-Mining-Machine-Learning-Astronomy/dp/0691151687/ref=sr_1_1?s=books&ie=UTF8&qid=1399475892&sr=1-1&tag=trndingcom-20)#5. [Statistics, Data Mining, and Machine Learning in Astronomy: A Practical Python Guide for the Analysis of Survey Data](http://www.amazon.com/Statistics-Mining-Machine-Learning-Astronomy/dp/0691151687/ref=sr_1_1?s=books&ie=UTF8&qid=1399475892&sr=1-1&tag=trndingcom-20)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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.

[![Image 6: Raspberry Pi Cookbook](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20162%20200'%3E%3C/svg%3E)](http://www.amazon.com/Raspberry-Pi-Cookbook-Python-Programmers-ebook/dp/B00JQEJE12/ref=zg_bsnr_285856_20&tag=trndingcom-20)#6. [Raspberry Pi Cookbook for Python Programmers](http://www.amazon.com/Raspberry-Pi-Cookbook-Python-Programmers-ebook/dp/B00JQEJE12/ref=zg_bsnr_285856_20&tag=trndingcom-20)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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.

[![Image 7: Practical Python and OpenCV](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20162%20222'%3E%3C/svg%3E)](https://pyimagesearch.com/practical-python-opencv/)#7. [Practical Python and OpenCV](https://pyimagesearch.com/practical-python-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](https://pyimagesearch.com/practical-python-opencv/).

It won’t disappoint, I promise.

### What's next? We recommend [PyImageSearch University](https://pyimagesearch.com/pyimagesearch-university/?utm_source=blogPost&utm_medium=bottomBanner&utm_campaign=What%27s%20next%3F%20I%20recommend).

**Course information:**  
84 total classes • 114+ hours of on-demand code walkthrough videos • Last updated: February 2024  
★★★★★ 4.84 (128 Ratings) • 16,000+ Students Enrolled

**I strongly believe that if you had the right teacher you could _master_ computer vision and deep learning.**

Do you think learning computer vision and deep learning has to be time-consuming, overwhelming, and complicated? Or has to involve complex mathematics and equations? Or requires a degree in computer science?

That’s _not_ the case.

All you need to master computer vision and deep learning is for someone to explain things to you in _simple, intuitive_ terms. _And that’s exactly what I do_. My mission is to change education and how complex Artificial Intelligence topics are taught.

If you're serious about learning computer vision, your next stop should be PyImageSearch University, the most comprehensive computer vision, deep learning, and OpenCV course online today. Here you’ll learn how to _successfully_ and _confidently_ apply computer vision to your work, research, and projects. Join me in computer vision mastery.

**Inside PyImageSearch University you'll find:**

*   ✓ **84 courses** on essential computer vision, deep learning, and OpenCV topics
*   ✓ **84 Certificates** of Completion
*   ✓ **114+ hours** of on-demand video
*   ✓ **Brand new courses released _regularly_**, ensuring you can keep up with state-of-the-art techniques
*   ✓ **Pre-configured Jupyter Notebooks in Google Colab**
*   ✓ Run all code examples in your web browser — works on Windows, macOS, and Linux (no dev environment configuration required!)
*   ✓ Access to **centralized code repos for _all_ 536+ tutorials** on PyImageSearch
*   ✓ **Easy one-click downloads** for code, datasets, pre-trained models, etc.
*   ✓ **Access** on mobile, laptop, desktop, etc.

[Click here to join PyImageSearch University](https://pyimagesearch.com/pyimagesearch-university/?utm_source=blogPost&utm_medium=bottomBanner&utm_campaign=What%27s%20next%3F%20I%20recommend)

Summary
-------

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.

![Image 8](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20410%20567'%3E%3C/svg%3E)

#### Join the PyImageSearch Newsletter and Grab My FREE 17-page Resource Guide PDF

Enter your email address below to **join the PyImageSearch Newsletter** and **download my FREE 17-page Resource Guide PDF** on Computer Vision, OpenCV, and Deep Learning.