Top 20 Most Useful Python Modules or Packages

Welcome to my blog, In this article, we will learn the top 20 most useful python modules or packages and these modules every Python developer should know.

Hello everybody and welcome back so in this article I’m going to be sharing with you 20 Python modules you need to know. Now I’ve split these python modules into four different categories to make little bit easier for us and the categories are:

  1. Web Development
  2. Data Science
  3. Machine Learning
  4. AI and graphical user interfaces.

Near the end of the article, I also share my personal favorite Python module so make sure you stay tuned to see what that is also make sure to share with me in the comments down below your favorite Python module.

python requests,django,flask,twisted,beautifulsoup,selenium,scrapy,numpy,pandas,matplotlib,nltk,opencv,tensorflow,keras,pytorch,scikitlearn,kivy,pyqt5,tkinter,pygame
top 20 python packages

1) Requests

#install command
pip install requests

The first category of modules that I’d like to discuss is those that deal with web development and HTTP requests now Python is heavily known for back-end web development and therefore you could assume that there’s a lot of different modules available to make enterprise-level websites in Python now the first module I want to talk about is actually the requests module now the request module is used to send HTTP requests with ease it’s very simple it’s easy to use.

import requests
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
r.status_code
#200
r.headers['content-type']
#'application/json; charset=utf8'
r.encoding
#'utf-8'
r.text
#'{"type":"User"...'
r.json()
#{'disk_usage': 368627, 'private_gists': 484, ...}

It the most downloaded Python module today pulling in around 15 million downloads a week and as per GitHub, it’s really reliant upon around 300 and 67 thousand repositories.

2) Django

Now this next one that I’m going to talk about is actually more of a framework than it is a module although you do install it and that is called Django now Django is an Interesting and fully customized framework of Python and it is very heavyweights and it is actually used by very big companies like Youtube, Spotify, Instagram, and Tinder and used to make their websites. you can create a Django simple project go to Django documentation.

#pip install Django

The Django is a totally Python back-end web framework you can utilize different languages with it you can connect it with different language frameworks and it comes with a lot of tools and very complex developer features and that allow us to make a good enterprise-level website.

3) Flask

#pip install Flask

Now the next module that I want to talk about is a flask. The flask is kind of a competitor of Django they’re both web frameworks although they do have some fundamental differences so Django and flask work similarly for basic websites and the flask is lighter weight, much easier, and faster web framework and flask does not come with all of the tools and crazy things that come with Django so if you want to know which one to pick if you’re using Django and flask used for web development when you create a very series website and do each and everything properly in the website and you want a very series authentication and many more then you probably use a Django but if you are doing side project or a little bit smaller then you want to pick flask and it’s a much easier module to get running and working.

4) Twisted

pip install Twisted

Now the next module I want to talk about is twisted. I don’t know an excessive amount about this one but I did want to throw it on my list because this is often actually used for doing online game development now you can do other things with it and Twisted allows us to communicate b/w clients and servers very easily and it makes your life easier than having to program out your own socket server and when you are trying to do any online interaction or real-time games like that with Python.

5) beautifulsoup4

pip install beautifulsoup4

The next module on our list is beautiful soup for now I believe there are some other versions of this as well you know there’s likely three two and one but beautiful soup is a great module for scraping the web so if you’re doing web scraping you’re trying to grab HTML data beautiful soup can do that for you and it’s pretty easy to get that working.

from bs4 import BeautifulSoup
soup = BeautifulSoup("<p>Some<b>bad<i>HTML")
print(soup.prettify())
<html>
 <body>
  <p>
   Some
   <b>
    bad
    <i>
     HTML
    </i>
   </b>
  </p>
 </body>
</html>
soup.find(text="bad")
'bad'
soup.i
<i>HTML</i>
#
soup = BeautifulSoup("<tag1>Some<tag2/>bad<tag3>XML", "xml")
#
print(soup.prettify())
<?xml version="1.0" encoding="utf-8"?>
<tag1>
 Some
 <tag2/>
 bad
 <tag3>
  XML
 </tag3>
</tag1>

6) selenium

pip install selenium
#example1
from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')

#example2
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox()

browser.get('http://www.yahoo.com')
assert 'Yahoo' in browser.title

elem = browser.find_element_by_name('p')  # Find the search box
elem.send_keys('seleniumhq' + Keys.RETURN)

browser.quit()

And the last module on my list for web development is selenium now selenium is used to do automation on websites so essentially allowing you to either test your websites or make some kind of bots that will interact with different websites and could do access websites HTML content like forms fields, automate the website elements can move your mouse cursor around you can click you can access buttons that’s what selenium allows you to do cool module I haven’t played with it too much although definitely something worth mentioning on this web development list.

7) scrapy

pip install Scrapy

Scrapy is an open-source python package and collaborative framework for extracting valuable data from websites. In a fast, simple, yet extensible way. Scrapy you can create and build your own web spiders and used them to crawl websites and extract structured data from their pages. Scrap is used widely purposes for data mining, data monitoring, and automated testing.

import scrapy

class BlogSpider(scrapy.Spider):
    name = 'blogspider'
    start_urls = ['https://www.zyte.com/blog/']

    def parse(self, response):
        for title in response.css('.oxy-post-title'):
            yield {'title': title.css('::text').get()}

        for next_page in response.css('a.next'):
            yield response.follow(next_page, self.parse)

scrapy runspider myspider.py

So the next category is data science now python is very popular for data science and one of the reasons for that is all of the different available modules that make a data scientist life much easier for example:

8) numpy

pip install numpy

the first module on my list is now NumPy is an amazing module for doing any kind of mathematical operations in Python so essentially what it allows you to do is work with array-like objects of multiple dimensions so like matrices for example and do all kind of complicated three-dimension four dimensions five-dimensional math very fast and the main reason is that it’s performing a lot of operations in C which means when you using a NumPy you will actually make your program lot of faster than other if you were to say not use that module and implement those operations in standard Python.

import numpy as np
a = np.arange(15).reshape(3, 5)
a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
a.shape
(3, 5)
a.ndim
2
a.dtype.name
'int64'
a.itemsize
8
a.size
15
type(a)
<class 'numpy.ndarray'>
b = np.array([6, 7, 8])
b
array([6, 7, 8])
type(b)
<class 'numpy.ndarray'>



>>> np.zeros((3, 4))
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [0., 0., 0., 0.]])
>>> np.ones( (2,3,4), dtype=np.int16 )                # dtype can also be specified
array([[[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]],

       [[1, 1, 1, 1],
        [1, 1, 1, 1],
        [1, 1, 1, 1]]], dtype=int16)
>>> np.empty( (2,3) )                                 # uninitialized
array([[  3.73603959e-262,   6.02658058e-154,   6.55490914e-260],  # may vary
       [  5.30498948e-313,   3.14673309e-307,   1.00000000e+000]])

9) pandas

pip install pandas

now the next module to discuss in this data science category is pandas. The pandas are great for reading and working with data frames and just data, in general, which makes it very easy to manipulate data work with data clean data get rid of columns and everything that you pretty much would want to do with data.

import numpy as np
import pandas as pd
df = pd.read_csv("/content/churn.csv")
df.shape
(10000,14)
df.columns
Index(['RowNumber', 'CustomerId', 'Surname', 'CreditScore', 'Geography', 'Gender', 'Age', 'Tenure', 'Balance', 'NumOfProducts', 'HasCrCard','IsActiveMember','EstimatedSalary', 'Exited'], dtype='object')

df.drop(['RowNumber', 'CustomerId', 'Surname', 'CreditScore'], axis=1, inplace=True)
df.shape
(10000,10)

df_spec = pd.read_csv("/content/churn.csv", usecols=['Gender', 'Age', 'Tenure', 'Balance'])
df_spec.head()

10) matplotlib

pip install matplotlib

Matplotlib that works with these two very nicely is a matplotlib now matplotlib is used for doing data visualizations so it’s really good for visualizing your data making plots making charts and it is a really good package when you working with ML (Machine Learning) models and visualizing a lot of things like loss function or amount of accuracy and your machine learning model is getting over a certain amount of epochs per se so now we move on to the last two modules in my list.

matplotlib examples : https://matplotlib.org/stable/tutorials/introductory/sample_plots.html

11) nltk

pip install nltk

NLTK represents a natural language toolkit and it’s utilized for doing any sort of information preparing, data processing or text handling, or text processing so in the NLTK that you have textual data or textual information and you need to eliminate things like punctuation or spaces or tokenize your data, for example, natural language toolkit can help you do that as a ton of tools for working with text-based data and well natural language processing.

import nltk
nltk.download()

from bs4 import BeautifulSoup

import urllib.request

import nltk

response = urllib.request.urlopen('http://php.net/')

html = response.read()

soup = BeautifulSoup(html,"html5lib")

text = soup.get_text(strip=True)

tokens = [t for t in text.split()]

freq = nltk.FreqDist(tokens)

for key,val in freq.items():

    print (str(key) + ':' + str(val))

freq.plot(20, cumulative=False)

#Remove stop words using NLTK
from nltk.corpus import stopwords

stopwords.words('english')

12) openCV

pip install opencv-python

#openCV examples :https://docs.opencv.org/master/examples.html

OpenCV stands for (Open Source Computer Vision Library) and OpenCV is an open-source computer vision and machine learning library. Python OpenCV was built to provide a common infrastructure for computer vision applications and speed up the utilization of machine perception in commercial products. OpenCV now open CV is an extremely powerful module that’s used for many different things wherever its main focus is on image and video data processing so we can do things like feature detection, object recognition, and detection as well and they are many machine learning models built into the module and you can use to manipulate data work with images you can draw things on images it’s just an extremely powerful module for really doing anything with an image or video data.

this transitions us nicely into the next category which is machine learning an AI.

13) tensorflow

pip install tensorflow

the first module, I have in this case is TensorFlow now TensorFlow is by far the most powerful module in this section it’s maintained and supported by Google and you can do some extremely powerful things with it without really having a great understanding of how all the math works and that’s the benefit of TensorFlow is it allows you to do very powerful things like you can do neural networks you can run standard machine learning algorithms you can create convolutional neural networks you can do things like neuro style transfers.

Tensorflow examples : view

14) Keras

You get started learning how to use this module now these transitions are sent to Keras so Keras is a module as well in Python that is actually a higher-level API for TensorFlow and you can do some beautiful cool things with TensorFlow it is kept up and upheld by Google and that implies there’s some incredible technologies and some innovations that have been done and used in TensorFlow but for some of us that are more beginners we’d probably want to be working with Keras now what Keras allows us to do is access some of these TensorFlow features in an easier way you can almost think of it.

Keras examples : View

As sort of wrapper for TensorFlow where it just makes it much easier to form models and do things quickly and that’s quite once we would use Keras then that leads us into PyTorch.

15) PyTorch

Now I don’t know much about PyTorch so I’ll refrain from talking about it and I do know that it’s another leading module in terms of machine learning and AI in Python. I believe it’s a little bit behind TensorFlow but definitely something worth checking out and finally, we conclude with scikit-learn.

PyTorch examples : View

16) scikit-learn

The scikit-learn is another great module in Python this one is definitely not as powerful as the previously mentioned modules but that’s okay it’s a little bit lighter weight and allows us to work with some things like clustering algorithms linear regressions support vector machines and some simpler things that yes you could do in TensorFlow but maybe you don’t want to use a module that you can use something like scikit-learn.

Scikit-learn examples : View

17) Kivy

the next modules that I’d like to discuss but those that are aimed towards building graphical user interfaces in Python so the first option here is Kivy now the queue is a python great module it is used for building applications that will scale to all various platforms like Linux, Mac and any Kivy Application you build will work on Linux, Mac, Windows, iOS, and Android now it’s a little bit harder than that to actually get those applications on the device but the main idea is that Kivy is pretty simple and easy to use and that anything you make that will work on all different devices.

Kivy Examples : View

18) PyQt5

Now the next framework or the next option on our list is PyQt5 now PyQt5 in my opinion is the best graphical user interface builder for Python.

It has the most options and flexibility in terms of what you can actually do with it you can even use CSS styling – well style your application and in fact, an example of something that’s built-in PyQt5 is actually the Spyder IDE so I believe most of that if not all of that is actually built using purely PyQt5 an entire python backend. if you want to make more complex desktop applications with python when you should pick the module that is more capable and it is Tkinter.

PyQt5 Examples : View

19) tkinter

so Tkinter is an older module it is also used for building graphical user interfaces it’s fairly similar to PyQt5 in terms of how the interfaces look although it’s definitely not complete your requirements I would say it’s a little bit easier for beginners and people that are looking to get something whipped up pretty fast and pretty easily.

Tkinter Examples : View

20) PyGame

before I wrap up the article, I want to tell you about my favorite module and python that hasn’t fit any of the categories mentioned before and that is Pygame now Pygame is the first Python module that I ever learned and it’s what really got me into Python programming and why I recommend it to any beginners or people that maybe aren’t as motivated to program to use it is not very practical in terms you building actual large games but if you want to build simple 2d games or work on your skills and build something fun.

PyGame Examples : View

Then you can definitely do that in Pygame and if you want some inspiration for some things that you can work within Pygame. how to make snake how to make other random platformer games and if you know what you’re doing with Pygame you can make some pretty powerful and impressive things so that has been it for the 20 python modules you need to know. Now, do you think I forgot any modules definitely let me know in the comments down below, and as always if you liked the article and share it with your friends and hopefully I will see you again in another article.

Thanks for reading the article.

Leave a Reply

Your email address will not be published. Required fields are marked *