*Libraries every programmer should know for Machine Learning in Python*

If a developer need to work on statistical techniques or data analysis, he or she is going to thinking −probably− on using Python.

This programming language is known for being friendly, easy to learn and it has an extensive set of libraries for Machine Learning.

When it comes to Machine Learning, Python is definitely one of the favorite choices.

**Related course:** Machine Learning Intro for Python Developers

But wait! First, let’s make clear what Machine Learning is and what are the libraries.

## What is Machine Learning?

Machine learning is literally the study of algorithms that allows, through artificial intelligence, a machine to learn from data.

Isn’t that incredible? Someday technology will be capable to learn and understand for us information, in way that will be impossible to us as humans.

On the other hand, libraries are sets of routines and functions written in a programming language as Python. This way, developers avoid writing many lines of code.

The magic behind it is mathematics, statistics and probability.

## Machine Learning Libraries

So, which are the essential libraries for machine learning in python?

### Pandas

Pandas is basic on data science. It’s that mandatory library for datasets, used for data extraction and preparation.

Pandas has methods for grouping, combining and filtering data and performing time series analysis.

It’s has two main structures: one dimensional (series) and two dimensional (data frames).

The keywords for Pandas are label and relational data.

### Matplotlib

When developers think about visualization libraries, the first to come out on their minds is this.

Matplotlib is commonly used to create 2D plots and graphs. Developers also can do charts, histograms and scatterplots.

In one side has a pretty low level, because programmers need to know more commands, but… on the other, with the rights and enough commands, you can make the graphs you want.

### Seaborn

Seaborn is “another” visualization library. It’s builds on Matplotlib foundations, depends on it but also take sophistication to the next level.

Seaborn make easier to generate certain kinds of plots, heat maps, time series and violin plots.

### Scikit-learn

Scikit-learn manage two basic terms: data mining and data analysis.

It’s ideal to working the classical ML algorithms.

Scikit-learn have a design capable to interoperate with the other libraries of python, as SciPy and NumPy.

### Tensorflow

TensorFlow is one of the most popular open-source software libraries for dataflow and differentiable programming.

Deep learning algorithms could be not necessaries sometimes, but are useful? You never should doubt it and that’s what TensorFlow is about.

TensorFlow is perfect to run and compile on both: Central Processing Unit and Graphics Processing Unit.

### Theano

Theano has a lot in common with TensorFlow: is also for Deep Learning and is able to be used on CPU and GPU.

It’s a multi-dimensional array and has mathematical expressions and operations, both similitudes with NumPy.

Considering is one of the heaviest libraries, Theano evaluate, optimize and define as needed.

Supervised or unsupervised, Artificial Intelligence on Machine Learning is a tool necessary to improve programming and developing.