Top 42 🐍 Python libraries you need to know 🦾
Tags: python, github, coding, programming
Published: 2023-12-18 14:40:50

## TL;DR
Dive deep into Python with this cheat list featuring the only libraries any Pythonista needs to know. 
From data manipulation to Machine Learning and creating web applications, these libraries are essential in your Python coding journey.

![Introduction GIF](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6s1cu1kjpp4xae20gvpt.gif)

<hr/>

## Web applications

![Web applications](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t532en00kn1s788ndnnt.png)

### 1. [Taipy](https://github.com/Avaiga/taipy)
Taipy is the new kid on the block. The simplest Python app builder.
It was designed for easy development for both front-end (GUI) and your ML/Data pipeline(s).

Create the application of your dreams thanks to: 

- complete customization & interactivity
- multipage & multi-user applications
- pipeline graphical editor 
- and so much more!

<hr/>

![QueenB](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ovcc5kqd8xr9uihrggbb.gif)

{% cta https://github.com/Avaiga/taipy %} Star ⭐ the Taipy repository {% endcta %}

Your support means a lot🌱, and really helps us in so many ways, like writing articles! 🙏

<hr/>

### 2. [Streamlit](https://github.com/streamlit/streamlit)
Streamlit is a well-established library to quickly create web applications for pilots. Very easy to use!

<hr/>

## Essentials

![Essentials](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f4ui7ramgta16rsnwm6s.png)
### 3. [Pandas](https://github.com/pandas-dev/pandas)
This library brings two core concepts, dataframes, and series, making data cleaning and preparation a painless process.

### 4. [Numpy](https://github.com/numpy/numpy)
While Pandas has data frames, Numpy has arrays.
They are known for allowing fast data manipulation, making Numpy an essential tool for scientific computing.

### 5. [Requests](https://github.com/psf/requests)
This library makes dealing with HTTPS requests a breeze. 
Requests provides functions for interacting with web APIs and managing HTTP responses.

### 6. [Scipy](https://github.com/scipy/scipy)
Based on Numpy, Scipy’s core functions focus on mathematical computing with features around optimization, signal processing, and interpolation.

<hr/>

## Date & Time

![Datetime](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9k1rcy4cduac7r77zkmc.png)
### 7. [DateTime](https://docs.python.org/3/library/datetime.html)
DateTime is a standard Python library that is essential for dealing with any DateTime format.

### 8. [Pendulum](https://github.com/sdispater/pendulum)
Pendulum has additional features necessary for more advanced date and time handling. 
They have better time zone support as well as better formatting options.

<hr/>

## Machine Learning

![Machine Learning](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o34j1iqk4hipnvtqc3l6.png)
### 9. [Scikit-Learn ](https://github.com/scikit-learn/scikit-learn)
This library doesn’t need an introduction anymore, and rightfully so. 
Scikit Learn is the reference for Machine Learning with algorithms from clustering to classification. 
It also includes functions for everything from data validation to data selection.

### 10. [XGboost](https://github.com/dmlc/xgboost)
This library is well-known for its efficient results for regression and classification algorithms.

### 11. [Catboost](https://github.com/catboost/catboost)
Catboost is a Machine Learning library specifically designed to deal with datasets displaying mostly categorical data.


<hr/>

## Deep Learning

![Deep Learning](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oc0hnfiemtkc74lk981j.png)

### 12. [TensorFlow](https://github.com/tensorflow/tensorflow)
TensorFlow is a well-established deep-learning library specializing in Natural Language Processing and image classification.

### 13. [PyTorch](https://github.com/pytorch/pytorch)
Pytorch or TensorFlow, that is the question.
Ultimately, you choose your team, but PyTorch differentiates with a more significant focus on Natural Language Processing and a more Pythonic feel, reducing the learning curve known to be steep for TensorFlow.

### 14. [Keras](https://github.com/keras-team/keras)
Keras is a great way to start with Deep Learning as it runs on top of TensorFlow but with a simplified implementation process.

### 15. [OpenCV](https://github.com/opencv/opencv)
OpenCV provides various algorithms around real-time computer vision. 
You can process multiple formats including objects, humans, and even handwriting.


<hr/>

## Natural Language Processing

![NLP](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i2vh6hm8ambihevofx3t.png)

### 16. [NLTK](https://github.com/nltk/nltk)
NLTK is the go-to library for Natural Language Processing.
NLTKs' key features are: processing and manipulating text( tokenization, stemming, etc.…) and classifications with NLP tasks for sentiment analysis, for example.

### 17. [SpaCy](https://github.com/explosion/spaCy)
Is the newer kid on the block, with a focus on making NLP more accessible and user-friendly. 
The library optimized the process to guarantee greater speed and efficiency.


<hr/>

## Testing

![Testing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7711x9xwpfi249kgj1iy.png)
### 18. [Pytest](https://github.com/pytest-dev/pytest)
Pytest is a framework that simplifies test writing and execution. It is user-friendly with its concise syntax.

### 19. [Unitest](https://docs.python.org/3/library/unittest.html)
Unistest is Python’s built-in testing framework.
Its key features are: test discovery, support for fixtures, effortless organization, and management of test suites.

<hr/>

## Audio

![Audio](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zrsy4w7kye7q71g7ugld.png)
### 20. [AudioFlux](https://github.com/libAudioFlux/audioFlux)
The go-to library in Python for audio signal processing, but made easy. 
AudioFlux has a plethora of features including sound analysis and can be used for deep learning training.

### 21. [Librosa](https://github.com/librosa/librosa)
This Python library allows for analyzing and extracting features from audio sources.


<hr/>

## Code Analysis

![Code Analysis](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dhbzed8w9wadmdptd4yd.png)
### 22. [Black](https://github.com/psf/black)
It is an automated code formatter. 
It will format your code automatically for a consistent style throughout your projects.

### 23. [Pylint](https://github.com/pylint-dev/pylint)
As the name infers, Pylint is a linter. 
It is a static code analysis tool that checks for code quality and errors.

### 24. [Flake8](https://github.com/PyCQA/flake8)
It is another linting library that will check your code against the PEP8 coding convention.

### 25. [Ruff](https://github.com/astral-sh/ruff)
Ruff is the fastest option to equivalent linters. 
It adds effectiveness and speed, making the process ten times faster.


<hr/>

## Distributed Computing

![Distributed Computing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/foog7hfgk5r01vpfu7nl.png)
### 26. [Dask](https://github.com/dask/dask)
Dask is a popular Python package for distributed computing, as it is particularly helpful in dealing with large datasets. 
It is easy to use as Dask integrates Pandas, Numpy, and Scikit-learn APIs . 

### 27. [PySpark](https://github.com/apache/spark/tree/master)
As the name implies, PySpark is a Python API for Apache Spark and allows us to harness Spark’s capabilities directly in Python. 

### 28. [Polars](https://github.com/pola-rs/polars)
Polars is a DataFrame library created to handle and process large datasets. 
It was inspired by python royalty - Pandas, but with a (fast) twist, it’s 10 to 100 times faster.


<hr/>

## Documentation

![Documentation](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tmv4jhi7w8oo3hrr3adp.png)
### 29. [Mkdocs](https://github.com/mkdocs/mkdocs)
Mkdocs is the most accessible library to generate straightforward documentation. 
Suitable for smaller projects and has almost no learning curve.

### 30. [Sphinx](https://github.com/sphinx-doc/sphinx)
Sphinx is usually preferred for larger-scale projects. 
It includes support for multiple formats and allows for specific customization.

### 31. [Pydoc](https://docs.python.org/3/library/pydoc.html)
Pydoc is integrated into the Python ecosystem. It directly generates your documentation from your modules.


<hr/>

## Geographical data

![Geodata](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zq7xis1kydzgxu7h1pm2.png)
### 32. [Geopy](https://github.com/geopy/geopy)
Geopys’ key features are: distance calculations, geocoding & reverse geocoding.

### 33. [Folium](https://github.com/python-visualization/folium)
This library allows you to create interactive maps in Python. A game-changer.

### 34. [Geopandas](https://github.com/geopandas/geopandas)
The way to go when you have geospatial data. 
As the title states, Geopandas is Pandas but for geospatial data. This library has functions for easy manipulation and analysis of geo-data.


<hr/>

## Games

![Games](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xdsaapo3h5bo2dhcj8fs.png)
### 35. [Pygame](https://github.com/pygame/pygame)
Pygame is the go-to, straightforward library that makes creating 2D and interactive video games in Python easy.

### 36. [Arcade](https://github.com/pythonarcade/arcade)
Just like PyGame, Arcade, makes creating video games a fun process in Python. 
They have a more modern twist to the classical Pygame, so choosing is really based on personal preference.


<hr/>

## Web scraping

![web scarping](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kt6wd4ytgpdvuys1mytg.png)
### 37. [Scrapy](https://github.com/scrapy/scrapy)
Scrapy is a well-established library known for web scraping. 
Some key features are: support for asynchronous/synchronous operations, HTTPS request handling, etc. 
It has an extensive array of functionalities, which may justify the library has a steep learning curve.

### 38. [Beautiful Soup](https://www.crummy.com/software/BeautifulSoup/#Download)
Beautiful Soup is all you need to deal with pulling data out of XML and HTML files.
It is appreciated by developers thanks to its Pythonic feel. 


<hr/>

## Visualizations

![Visualizations](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j8sawtir7wvwzmtns78i.png)

### 39. [Matplotlib](https://github.com/matplotlib/matplotlib)
Matplotlib is the main widget library in Python and for a good reason. 
Matplotlib allows the plotting of 2D graphs with a wide range of chart types and also allows for significant customization. 
The fine-grain control of the elements is a real advantage of this library.

### 40. [Bokeh](https://github.com/bokeh/bokeh)
Bokeh, contrary to Matplotlib, has its focus on interactive charts.  

### 41. [Seaborn](https://github.com/mwaskom/seaborn)
Seaborn is built on top of Matplotlib. 
While Matplolib has an emphasis on preciseness and simplicity, Seaborn has real added value in their sleek visuals while creating complex statistical visualizations.

### 42. [Vizzu](https://github.com/vizzuhq/vizzu-lib)
Vizzu found a niche in visualization and do it very well. 
They’ve put storytelling and graphs all in one with their highly animated visualizations—a great way to have more dynamic graphs.


<hr/>

## Conclusion
Whether you’re a senior Pythonista or dabbling with Python, with this list of indispensable libraries you will be able to undertake any challenge. Have fun coding!

</hr>

I’m a rookie writer and would welcome any suggestions for improvement!


![Rookie image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/25oebh36ha622u74kpli.gif)

Feel free to reach out if you have any questions.