# 11 Python Libraries every ML Enthusiast Must Know

##### As a person who is interested in the domain of Machine Learning, you know Python is the go-to language for most of your projects. But for easier processing, Python provides a wide variety of libraries that make your tasks very easy by reducing the amount you need to write.

Machine Learning is the technique of making a computer learn how to classify or predict various groups based on repetitive learning on a set of data. Using other languages like Java or C makes this task extensively lengthy and tedious, but Python provides an easy way out by enabling the use of pre-defined libraries containing suitable methods that can be called for as per requirement and demand of the task, and it’s easy syntax puts it among the top choices for Machine Learning or similar tasks among academics and industry professionals equally.

Besides the above-mentioned advantages, Python is free and open-source, making it user friendly and enhancing the scope of improvement.

### Need of Libraries

A library is a set of predefined codes for a set of tasks that can be incorporated into your program. This is a preferred method of coding as it reduces the amount of code to be written from scratch by importing methods from the libraries provided to enhance code functionality and performance.

Python has a selection of numerous libraries sorted based on the functionality they provide and tasks they help in performing. So, let’s have a look at what these libraries are, how they are used, and how to install them.

First things first, to download and install any of these libraries, you must first download Python, run its installable file, and install pip for your system.

To install pip, run the following command on command prompt:

python get-pip.py –user

**NumPy**

This is one of the fundamental libraries for ML provided by Python. It works with large multi-dimensional arrays and matrices performing complex mathematical functions like Fourier transform, linear algebra, random number computations, etc. NumPy is internally used by advanced libraries like TensorFlow to perform scientific calculations.

Programmers benefit from this because it is highly interactive, very intuitive as it makes grasping difficult concepts very easy, and helps with mathematical functioning.

NumPy can be used to express sound waves, images, binary raw streams, etc. as a multi-dimensional array of real numbers. Also helps with cleaning and manipulating data.

Installation:

Run the following command on command prompt:

python -m pip install –user numpy

And your library is ready to use.

To check the version:

python

import numpy as np

np.version.version

How to use it:

https://gist.github.com/megha444/1b5f2a3f4531df4b046f7c9c6949decb

**Scikit-Learn**

This library helps perform typical supervised and unsupervised machine learning tasks like classification, regression, preprocessing, clustering, model selection, and even dimensionality reduction.

The basic idea behind this library is not to focus on tasks like handling, manipulating, or visualizing data but on data modeling tasks. It can also be used for data analysis and mining.

The features most commonly appreciated are its cross-validation ability, to verify the accuracy of models based on supervised learning on unseen data, the ability to efficiently extract features from text and images.

In addition to the mentioned uses, Scikit-Learn also helps with ML algorithms like random forest, support vector machines, and gradient boosting.

Installation:

pip install scipy

pip install -U scikit-learn

(Note: To install scikit-learn you need to have NumPy and SciPy already installed.)

To check the version:

python -m pip show scikit-learn

python -m pip freeze

python -c “import sklearn; sklearn.show_versions()”

How to use:

https://gist.github.com/megha444/c96a819b37706485e1323faabe5381c4

From the above code, we see how scikit-learn is used to split data, transform a scalar model, and perform MinMax scaling on a model.

**TensorFlow**

This is another highly popular ML library provided by Python, chances are you’ve already heard of it several times if you have researched even a bit about ML.

TensorFlow aids in working with creating new algorithms involving a huge number of operations on neural networks by representing them as computational graphs known as tensors.

Google uses TensorFlow for performing its ML operations like YouTube, Google Search, Gmail, etc. Its chief task is to enable building models that work on deep learning. TensorFlow is an open-source library and can work on computers as well as mobile devices equally efficiently.

It is used for speech, image, and text recognition, for NLP, for performing differential equations, and for collaborating ideas and code. It uses a flow of multi-layered nodes allowing you to easily train, set up, and deploy ANN with huge datasets. Its other advantages are that it is easy to train a model using TensorFlow, it helps train a parallel neural network, it is highly flexible and it is open source.

Installation:

This requires you to have the latest version of pip

pip install –upgrade pip

pip install tensorflow

The installation process may take some time to complete as the file is large and other dependencies need to be installed too.

Check version:

pip show tensorflow

**Theano**

As we know by now that machine learning essentially comprises mathematical and statistical operations. So, Theano is a Python library enabling easy optimization, definition, and evaluation of complex mathematical operations by supporting GPUs for better performance in resource-consuming computations as compared to CPUs.

The task it is widely used for is self-verification and unit-testing in order to diagnose and detect the various errors in code. This is a very powerful library which is why it has been used for computationally expensive projects for a while now because of its simplicity and easy approachability by beginners and professionals alike.

Installation:

Before installing Theano, you must have Python, NumPy, SciPy

pip install Theano

xcode-select –install

Click on ‘Install’ in the wizard that pops up, and you are good to go.

How to use:

https://gist.github.com/megha444/24f5f03f7a59b0db2fb3ed3b71992228

Output:

4.0

**Keras**

It is an API used for computation-intensive neural network operations with the ability to run on Theano, TensorFlow, or even CNTK. It can effortlessly run on GPU and CPU both. It permits fast and easy prototyping making it extremely easy to be used by beginners for designing a neural network.

It provides great utility for processing datasets, compiling models, graph visualization, etc. It supports models of all types convolutional, recurrent, pooling, fully connected, moreover, all Keras models are portable.

It consists of many implementations of widely used NN building blocks like objectives, layers, activation functions, and tools that make image and text processing easy. It also provides several pre-trained models like word2vec, MNIST, ResNet, etc. and some pre-processed datasets too.

Installation:

Keras has the following dependencies:

- Numpy
- Pandas
- Scikit-learn
- Matplotlib
- Scipy
- Seaborn: pip install seaborn

After installing the above libraries, you can install Keras using the following code:

pip install keras

Use:

https://gist.github.com/megha444/b32e0d72c3810063009e9da98897e184

Output:

Linear regression model is initialized with weights w: 0.39, b: 0.001

Linear regression model is trained to have weight w: 3.40, b: 0.64

**PyTorch**

It also offers APIs to solve neural network-related application issues. This is extremely useful in deep learning tasks because of its numerous features for data preprocessing and analysis. It also permits the user to create an n-dimensional array for better dataset control.

This n-dimensional array is capable of operations like the dot product, statistical distribution, and matrix-vector multiplication. It is very easy to integrate PyTorch with the Python ecosystem and it also aids in processing tensors with the ability to accelerate the GPUs.

Installation:

To install PyTorch on Windows using pip for Python without CUDA, use the following command:

pip install torch==1.6.0+cpu torchvision==0.7.0+cpu -f https://download.pytorch.org/whl/torch_stable.html

However, for any other configuration, please visit the PyTorch website.

**NLTK**

Natural Language Toolkit, mainly used for natural language-related operations, is a widely used library for processing data coming from human language. It provides several resources for lexical processing like word2vec, FrameNet, etc. with simple and easy to use interfaces. Its uses include text classification and tokenization, information retrieval, stemming, lemmatization, speech and handwriting recognition, etc.

Applications built on NLTK are easy to debug, deploy, and modify as it has low processing impact and the code is easily readable. It also allows user-defined modules to be created for customization and extensibility purposes.

Installation:

This library requires NumPy to be installed

pip install nltk

Use:

https://gist.github.com/megha444/5ea336b8201fd8b536d0754b43bc7472

Output:

### Pandas

This is a library extensively used for data analysis like reading a .csv file, extracting its top rows, extracting the column datatypes, etc. As for any ML program, we need to first preprocess our data and clean it, this is where Pandas comes in handy. It offers a wide variety of data analysis tools and high-level data structures.

It helps perform complex data operations with a couple of small commands for grouping, filtering, combining data, and even for time-series operations. Basic operations usually performed using Pandas are iteration, re-indexing, visualization, concatenation, aggregation, sorting, etc. It also offers a graphical interface with appropriate results in a tabular format.

Installation:

pip install pandas

Use:

https://gist.github.com/megha444/b6dadbebd9024b54337e8fefdbfc3ab9

Output:

**Matplotlib**

Particularly used when the programmer wants to observe the patterns in their data. Similar to Pandas, even Matplotlib is not used directly for ML, but for data visualization to understand the results obtained and the data used. It produces 2D plots and graphs using the module ‘pyplot’ which enables users to control formatting axes, line styles, font properties, etc. resulting in histograms, bar charts, error charts, scatter plots, and similar. This can be used to create 3D plots as well as image plots, polar plots, contour plots, etc. This task is performed for the programmers the patterns formed by their results or dataset for better analysis.

Installation:

python -m pip install -U pip

python -m pip install -U matplotlib

Use:

https://gist.github.com/megha444/519bd51e5f5e2e47730313138784dfc9

**Closing thoughts**

These are just a few from the vast pool of libraries provided by Python which make programming easy for beginners as well as industry professionals in their required tasks. The libraries discussed above can be used to explore others and develop machine learning or deep learning applications with ease by either using the defined models or defining new ones using the flexibility provided by Python.

Not a ML enthusiast.. But these libraries look great. Thank you for the info.