Studying data science comes across a huge variety of possibilities. I want to share with you my top Python libraries which are widely used in data science.

## 1. Pandas

You've probably heard that 70 to 80 percent of a data scientist's work is research and data preparation.

Pandas is primarily used for data analysis, it is one of the most popular libraries. It provides many useful tools for collecting, cleaning and modeling data. With Pandas, you can load, prepare, analyze and manipulate any indexed data. Machine learning libraries also use dataframes from Pandas as input.

### Where to Learn

- Tutorial on Kaggle
- 75 questions about Pandas
- Challenges for learning Pandas

## 2. NumPy

The main advantage of NumPy is its support for n-dimensional arrays. These multidimensional arrays are 50 times more reliable than lists in Python. Because of them, NumPy is much loved by data scientists.

NumPy is often used by other libraries like TensorFlow, for internal calculations with tensors. The library offers fast, versatile functions for routine calculations that are difficult to do by hand. NumPy uses functions optimized for working with multidimensional arrays that are comparable to MATLAB.

### Where to learn

## 3. scikit-learn

Scikit-learn, is probably the most important library for machine learning in Python. After cleaning and manipulating data in Pandas or NumPy, Scikit-learn is used to create machine learning models. The library provides many tools for predictive modeling and analysis.

There are many reasons to use Scikit-learn. For example, to create several types of machine learning models, with and without reinforcement, to cross-check model accuracy, and to select important features.

### Where to learn

- Scikit-learn tutorial
- An Introduction to Machine Learning (Udacity)

## 4. Gradio

Gradio allows you to build and deploy web-based machine learning applications with just a few lines of code. It serves the same purpose as Streamlit, or Flask, but is faster and easier to deploy models.

Main advantages of Gradio:

- Enables further validation of the model. It allows you to interactively test different model inputs.
- It's a good way to do demonstrations.
- Easy to run and distribute because web applications are available to everyone via a link.

### Where to learn

## 5. TensorFlow

TensorFlow is one of the most popular Python libraries for building neural networks. It uses multidimensional arrays, also known as tensors, which allow multiple operations on the same input data.

Because of its multithreaded nature, it can train multiple neural networks simultaneously and create highly efficient and scalable models.

### Where to learn

- Library website.
- An introduction to deep learning from Kaggle
- Tutorial by Google

## 6. Keras

Keras is mainly used to create deep learning models and neural networks. It uses TensorFlow and Theano and makes it easy to create neural networks. Because Keras generates the computational graph on the server, it is slightly slower than other libraries.

### Where to learn

- The library's website
- Tutorial from Google

## 7. SciPy

A distinctive feature of this library are functions that are useful in mathematics and other sciences. For example: statistical functions, optimization functions, signal processing. For solving differential equations and optimization, it includes functions for finding numerical solutions to integrals. Important areas of its application:

- Multidimensional image processing;
- Solving Fourier transforms and differential equations;
- Due to its optimized algorithms, it can perform linear algebra calculations very efficiently and with high reliability.

## 8. Statsmodels

Statsmodels is an excellent library for hardcore statistics. It incorporates graphical features and functions from Matplotlib, it uses Pandas for data processing, it uses Pasty for R similar formulas, it also uses Numpy and SciPy.

The library is used to create statistical models like linear regression, and perform statistical tests.

### Where to learn

## Plotly

Plotly is a powerful, easy-to-use tool for creating visualizations that allows you to interact with them.

Along with Plotly, there is Dash, which allows you to create dynamic dashboards using Plotly visualizations. Dash is a web interface for Python that eliminates the need to use Js in web analytics applications, and allows you to run them online and offline.

- Learn more about data visualization using Plotly.

### Where to learn

## 10. Seaborn

Seaborn is an efficient Python library for creating various visualizations in Data Science, using Matplotlib.

One of its main features is data visualization, which allows you to see correlation where it wasn't obvious. This allows data scientists to better understand the data.

With customizable themes and high-level interfaces, you can get visualizations that are so high quality and representative that they can later be shown to clients.

### Where to learn

- Seaborn ultimatum guide
- The guide on the library's website