• # Data science & data analysis most effective libraries

In the modern world, information is one of the greatest values. And I'm not just talking about the really important data like passwords or commercial secrets, but also about something simpler and more accessible, like information about the gender, age and place of residence of the website visitors, or the statistics of сryptocurrency rate fluctuations for a certain period.

At first glance, it may seem that such data is chaotic and has a very low value. And it might be the case if we evaluate it with the ordinary human brain. But the moment you apply the data analysis methods and data science groundwork to a large volumes of data, it turns out that the parameters you've thought werenжt connected actually correlate to each other in some way.

In this article we'll tell you about the most effective Python libraries for data science and data analysis.

## 1. NumPy

NumPy allows you to efficiently handle multidimensional arrays. Many other libraries are built on NumPy, and without it it'd be impossible to use pandas, Matplotlib, SciPy or scikit-learn, which is why it ranks first in the list.

Also, it has several well-implemented methods, for example, the random function, which is much better than the random number module from the standard library. The polyfit function fits perfectly for simple predictive analytics tasks, for example, linear or polynomial regression.

## 2. Pandas

Data analysts usually use flat tables, such as in SQL and Excel. Initially, this wasn't possible in Python. The pandas library allows you to work with two-dimensional tables in Python.

This high-level library allows you to build summary tables, allocate columns, use filters by parameters, perform grouping by parameters, run functions (addition, finding a median, the average, minimum, and maximum values), merge tables and much more. In pandas you can also create the multidimensional tables.

## 3. Matplotlib

Data visualization, obviously, allows to present it in a convenient visual form, study more precisely, which is harder to do in the usual format, and present it to other people in a more understandable way. Matplotlib is the best and most popular Python library for this purpose. It's not very easy to use, but with the help of 4-5 most common code blocks for simple line diagrams and point-to-point graphs you can learn to create them pretty quickly.

## 4. Scikit-learn

Some of the most interesting Python features are machine learning and predictive analytics, and scikit-learn is the most appropriate library for this. It contains a number of methods that cover everything a data analyst may need during the first few years in his career: classification and regression algorithms, clustering, validation and model selection. It can also be used to reduce the data dimensionality and highlight characteristics.

Machine learning in scikit-learn is based on the importing the correct modules and running the model selection method. It's much harder to clean, format and prepare data, and also to select the optimal input values and models. That's why, before you start scikit-learn, first of all, you need to work on your Python and pandas skills to learn how to prepare qualitative data and, secondly, master the theory and mathematical basis of the various prediction and classification models in order to understand what's happening with the data during its application.

## 5. SciPy

There is a SciPy library and a SciPy stack. Most of the libraries and packages described in this article are included in the SciPy stack, which is designed for scientific computing in Python. The SciPy library is one of its components that includes tools for processing the numerical sequences underlying the machine learning models: integration, extrapolation, optimization, and others.

As in the NumPy case, it's not the SciPy itself that is most often used, but the scikit-learn library mentioned above, which is largely based upon it. It's useful to know SciPy because it contains key mathematical methods for performing complex machine learning processes in scikit-learn.

## 6. TensorFlow

The TensorFlow library was created by Google to replace DistBelief - a framework for training neural networks. It's being used to configure, train and apply artificial neural networks with multiple data sets. Thanks to this library Google can identify objects on photos, and the voice recognition app can understand speech.

## 7. Theano

The Theano library is used to evaluate and improve mathematical expressions. The syntax is the same as in NumPy, so if you already have experience with this popular library, then getting comfortable with Theano won't be a problem. It carries out the necessary calculations with a large amount of data 100 times faster than the CPU, because it uses a GPU. For this it's being highly appreciated by those who are engaged in deep learning and face computational challenges.

## Less popular libraries

So, above we went through the most popular libraries, which are used by almost every professional data scientist or a person interested in this field. There also are less well-known, but no less useful libraries for intellectual analysis and processing of natural language, and data visualization.

• Scrapy
• Scrapy is used to create spider bots that scan website pages and collect structured data: prices, contact information and URLs. In addition, Scrapy can extract data from the API.

• NLTK
• The NLTK set of libraries is designed for natural language processing. Its main functions are: text markup, specifying named objects, displaying the syntax tree, which reveals parts of speech and dependencies. It's being used for tone analysis and automatic generalization.

• Pattern
• Pattern combines the Scrapy and NLTK functionality and is designed for extracting data from the Internet, natural language processing, machine learning and social media analysis. Among its tools are the search engine, API for Google, Twitter and Wikipedia, and text analysis algorithms that can be executed in several lines of code.

• Seaborn
• The Seaborn library is of a higher level than Matplotlib. With its help it's easier to create a specific visualization: heat maps, time series and violin diagrams.

• Bokeh
• Bokeh creates interactive and scalable graphics in browsers using JavaScript widgets. It has three interface levels, from high, which allows you to quickly create complex graphics, to low.

• Basemap
• Basemap is used to create maps. The

Folium library, with which the interactive maps on the Internet are being created, is based on it. Here is the example of visualization created with Folium and Basemap.

• NetworkX
• NetworkX is used to create and analyze graphs and network structures. It's designed to work with standard and non-standard data formats.

Despite the fact that there are many Python libraries and packages for image and natural language processing, deep learning, neural networks and so on, it's better to master the five basic libraries first (described in paragraphs 1-5 of this article), and only then target more narrowly focused ones.

## Conclusion

As you can see, Python has a very wide range of tools for both collecting information and analyzing it. Given that the amount of data that needs to be analyzed is growing every day, the ability to work with these libraries can be a great plus for your resume (or maybe even a basic requirement for a startup).

If you have the experience of working with one of the listed libraries - share it, this way you might help other developers who are just making the first steps in this area to make up their minds.

This article were inspired by the Tina Wenzel's performance at PyData London 2018 Lightning Talks.