Hey Pythonista👋, welcome to my blog & happy new month 🎉. Have you tried or used the libraries I am going to mention in this blog yet? If not feel free, you don't have to use all of them especially if you have found your niche in Python.
There are over 100,000 python libraries present today according to My Great Learning.
With all these, it can a bit confusing to know which one is best for your project. Let me walk you through the top 50 libraries and how they’re used! This list will contain frameworks libraries and modules.
Before I begin, let me clear some air about the difference between a module and a library using python.
Difference between a module and a library
A library is an umbrella term referring to a reusable chunk of code. Usually, a Python library contains a collection of related modules.
This means a library is a collection of related functionality, whereas a module only provides a single piece of functionality. If you have a system with both modules and libraries, a library will typically contain multiple modules.
What Is A Framework?
In computer programming, a software framework is an abstraction in which software, providing generic functionality, can be selectively changed by additional user-written code, thus providing application-specific software.
The Python Package Index, abbreviated as PyPI and also known as the Cheese Shop, is the official third-party software repository for Python with over 2 million releases.
PyPI is the default software repository for Python developers to store created Python programming language software developers and programmers and with
pip install, you can install almost any repo there.
The Python Standard Library
Python’s standard library is very extensive, offering a wide range of facilities as indicated by the long table of contents listed below.
The library contains built-in modules (written in C) that provide access to system functionality such as file I/O that would otherwise be inaccessible to Python programmers, as well as modules written in Python that provide standardized solutions for many problems that occur in everyday programming.
The Top 50 Libraries In No Particular Order:
Natural Language Processing:
Natural language processing (NLP) is a field that focuses on making natural human language usable by computer programs.
NLTK Leading platform for building Python programs to work with human language data.
Short for Natural Language Toolkit & requires Python versions 3.6 and higher
More Info & Installation: nltk.org
TextBlob TextBlob is a Python (2 and 3) library for processing textual data.
More Info & Installation: github.com/sloria/textblob
Gensim An open-source library for unsupervised topic modelling and natural language processing, using modern statistical machine learning.
More Info & Installation: radimrehurek.com/gensim
Computer vision is a field of artificial intelligence (AI) that enables computers and systems to derive meaningful information from digital images, videos and other visual inputs — and take actions or make recommendations based on that information.
OpenCV Provides a real-time optimized Computer Vision library, tools, and hardware.
More Info & Installation: opencv.org
Pillow The Python Imaging Library adds image processing capabilities to your Python interpreter.
More Info & Installation: python-pillow.org
PyTesseract Python-tesseract is an optical character recognition (OCR) tool for python. That is, it will recognize and “read” the text embedded in images.
More Info & Installation: github.com/madmaze/pytesseract
A graphical user interface (GUI) is a type of user interface through which users interact with electronic devices via visual indicator representations.
TkinterA standard GUI library for Python. Python when combined with Tkinter provides a fast and easy way to create GUI applications.
More Info & Installation: docs.python.org/3/library/tkinter.html
wxPython A wrapper for a cross-platform GUI API (often referred to as a "toolkit") wxWidgets (which is written in C++) for the Python programming language.
More Info & Installation: wxpython.org
PyQT A cross-platform GUI toolkit, a set of python bindings for Qt v5.
More Info & Installation: pypi.org/project/PyQt5
Python is an excellent choice for rapid prototyping and building of games. But it has limits with performance.
PygameA cross-platform set of Python modules that are used to create video games. It consists of computer graphics and sound libraries designed to be used with the Python programming language.
More Info & Installation: pygame.org
Pyglet A 3D Animation and Game creation engine, it is a powerful, yet easy to use Python library for developing games and other visually-rich applications on Windows, Mac OS X, and Linux.
More Info & Installation: pyglet.org
PyOpenGL PyOpenGL is the most common cross-platform Python binding to OpenGL and related APIs.
PyOpenGL is compatible with a wide range of Python GUI libraries, including Pygame, PyQt, Raw Xlib, and others. The framework is most commonly used by iOS game development companies.
More Info & Installation: pyopengl.sourceforge.net
One area where Python shines is web development. Python offers many frameworks from which to choose from including bottle.py, Flask, CherryPy, Pyramid etc.
Requests The goal of the project is to make HTTP requests simpler and more human-friendly.
More Info & Installation: requests.readthedocs.io/en/master
Scrapy A free and open-source web-crawling framework written in Python. Originally designed for web scraping, it can also be used to extract data using APIs or as a general-purpose web crawler.
More Info & Installation: scrapy.org
BeautifulSoup A Python package for parsing HTML and XML documents.
More Info & Installation: crummy.com/software/BeautifulSoup/bs4/doc
Django A Python-based free and open-source web framework that follows the model–template–views architectural pattern.
More Info & Installation: djangoproject.com
Flask A micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries.
More Info & Installation: flask.palletsprojects.com/en/1.1.x
Python provides great libraries to deal with data science applications and it's a standard for ML & AI due to its simplicity and vast library.
Pandas A software library written for the Python programming language for data manipulation and analysis.
More Info & Installation: pandas.pydata.org
Matplotlib A cross-platform, data visualization and graphical plotting library for Python and its numerical extension NumPy.
More Info & Installation: matplotlib.org
Plotly Similar to Matplotlib and it allows users to import, copy and paste, or stream data to be analyzed and visualized.
More Info & Installation: plotly.com/python
Bokeh Creating interactive visualizations for modern web browsers. It helps you build beautiful graphics, ranging from simple plots to complex dashboards with streaming datasets.
More Info & Installation: docs.bokeh.org/en/latest/index.html
SQLAlchemy For database abstraction. It is a Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.
More Info & Installation: sqlalchemy.org
Python has a built-in module that you can use for mathematical tasks. There are however other libraries that are used in complex computations and data analysis.
Numpy NumPy is a library for the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays.
It stands for 'Numerical Python'.
More Info & Installation:numpy.org
SciPy A free and open-source Python library used for scientific computing and technical computing. A library of algorithms and mathematical tools.
More Info & Installation: scipy.org
SymPy A Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible.
More Info & Installation: sympy.org/en/index.html
Since Python is a general-purpose language, it can do a set of complex machine learning tasks and enable you to build prototypes quickly that allows you to test your product for machine learning purposes.
Keras An open-source software library that provides a Python interface for artificial neural networks. Keras acts as an interface for the TensorFlow library.
More Info & Installation: keras.io
Tensorflow It can be used across a range of tasks but has a particular focus on the training and inference of deep neural networks.
More Info & Installation: tensorflow.org
PyTorch PyTorch is an optimized tensor library primarily used for Deep Learning applications using GPUs and CPUs.
More Info & Installation: pytorch.org
Scikit-Learn It provides a selection of efficient tools for machine learning and statistical modelling including classification, regression, clustering and dimensionality reduction via a consistent interface in Python.
More Info & Installation: scikit-learn.org/stable
Imbalanced-learn A Python package offering a number of re-sampling techniques commonly used in datasets showing strong between-class imbalance.
More Info & Installation: pypi.org/project/imbalanced-learn
Theano A Python library and optimizing compiler for manipulating and evaluating mathematical expressions, especially matrix-valued ones.
More Info & Installation: deeplearning.net/software/theano
LightGBM Short for Light Gradient Boosting Machine, is a free and open-source distributed gradient boosting framework for machine learning originally developed by Microsoft.
It is based on decision tree algorithms and used for ranking, classification and other machine learning tasks.
More Info & Installation: github.com/microsoft/LightGBM
Eli5 Used to inspect ML classifiers and explain their predictions. It is popularly used to debug algorithms such as 'sklearn' regressors and classifiers, XGBoost, CatBoost, Keras, etc.
More Info & Installation: pypi.org/project/eli5
Sound manipulation is easily done in Python, thanks to a few very useful modules.
PyAudioAset of Python bindings for PortAudio, a cross-platform C++ library interfacing with audio drivers.
More Info & Installation: people.csail.mit.edu/hubert/pyaudio
PySoundFileIt can read and write sound files. File reading/writing is supported through
libsndfile, which is a free, cross-platform, open-source (LGPL) library.
More Info & Installation: github.com/bastibe/PySoundFile
Mutagen A Python module to handle audio metadata. It supports ASF, FLAC, M4A, Monkey's Audio, MP3, Musepack, Ogg FLAC, Ogg Speex, Ogg Theora, Ogg Vorbis, etc.
More Info & Installation: github.com/quodlibet/mutagen
If you are developing applications for Microsoft Windows, the following modules can help make your app better integrated with the OS.
PyWin32 A wrapper of Python that allows us to interact with COM objects and automate Windows applications with Python.
More Info & Installation: github.com/mhammond/pywin32
Py2exe Converts Python scripts into executable Windows programs, able to run without requiring a Python installation.
More Info & Installation: py2exe.org
Python integrates very well with Mac OS. The following modules are very helpful if you are developing for Apple’s OS.
Py2App A Python setup tools command that will allow you to make standalone Mac OS X application bundles and plugins from Python scripts.
More Info & Installation: github.com/ronaldoussoren/py2app
PyObjC PyObjC is a bridge between Python and Objective-C. It allows full-featured Cocoa applications to be written in pure Python.
More Info & Installation: github.com/ronaldoussoren/pyobjc
USB and Serial Ports
Did you know that using Python, you can access your computer’s USB and Serial ports? The following modules will help when you need to accomplish such tasks.
PyUSB Aims to be an easy-to-use Python module to access USB devices. PyUSB relies on a native system library for USB access.
More Info & Installation: pyusb.github.io/pyusb
PySerial A library that provides support for serial connections ("RS-232") over a variety of different devices: old-style serial ports, Bluetooth dongles, infra-red ports, and so on.
More Info & Installation: github.com/pyserial/pyserial
USPP A multi-platform Python module to access serial ports. At the moment, it only works in Windows.
More Info & Installation: ibarona.googlepages.com/uspp
Seaborn A library for making statistical graphics in Python. It is built on top of Matplotlib and is closely integrated with pandas data structures.
More Info & Installation: seaborn.pydata.org
IPython IPython provides a rich toolkit to help you make the most out of using Python interactively.
✔ A powerful interactive Python shell
✔ A Jupyter kernel to work with Python code in Jupyter notebooks and other interactive frontends.
More Info & Installation: ipython.org
Poetry Helps you declare, manage and install dependencies of Python projects, ensuring you have the right stack everywhere.
More Info & Installation: python-poetry.org
Kivy A free and open-source Python framework for developing mobile apps and other multitouch application software with a natural user interface.
More Info & Installation: kivy.org/#home
Pendulum A drop-in replacement for the standard DateTime class as it inherits from Python's built-in DateTime class.
More Info & Installation: pendulum.eustace.io
Loguru This library is intended to make Python logging less painful by adding a bunch of useful functionalities that solve caveats of the standard loggers.
More Info & Installation: github.com/Delgan/loguru
Pipenv Pipenv rolls the management of Python virtual environments and Python packages into a single tool.
More Info & Installation: github.com/pypa/pipenv
Great If you have read this far👏: Did you count these to see if they are really 50😂!?
For you to be able to understand all these common libraries, you must read about them, use them, practice and become comfortable. I have used some of these libraries and some are just new to me as well but for further reading, use these resources.
Did you find a new library? If yes, consider subscribing, sharing and reacting to my blog for related content.
NOTE : Some libraries aforementioned may require different versions of Python to run, be sure to read the official docs or links provided.
Apologies for not including your favourite library🙂.
If you enjoyed reading, consider subscribing and reacting to this with love by sharing, commenting and any criticism is much welcome.
🔹Follow me on Twitter :
Ronnie Atuhaire 🤓