Python Best Libraries 2k20
In programming, a library is a collection of precompiled routines that a program can use. The routines, sometimes called modules, are stored in object format. Libraries are particularly useful for storing frequently used routines and codes because you do not need to explicitly link them to every program that uses them so that coding can become time-efficient.
If Python is sky then libraries are just like stars.
There are enormous numbers of libraries that server different tasks to the developer. The libraries help the developer to write the program/software in less time with fewer efforts.
The library is simply a collection of functions which can be added to your code or software and the functions called as necessary, just like any other functions in the program. More precisely any object, not only functions can be stored in a library, but the vast majority of libraries only contain functions.
What we will cover in this article:-
- What are Python Libraries?
- Advantages of Libraries
- Application of Python Libraries
- Standard Python Libraries
- Top Important Libraries for Web Development
- Top Important Libraries for Data Science
- Top Important Libraries for GUI programming
- Few Basic Projects Using Library in Python
- Conclusion
What are Python Libraries?
Python library is a collection of functions and methods that allows you to perform many actions without writing your code. 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. Some of these modules are explicitly designed to encourage and enhance the portability of Python programs by abstracting away platform-specifics into platform-neutral APIs.
Advantages of Python Libraries
The diverse application of the Python language is a result of the combination of features which give this language an edge over others. Some of the benefits of programming in Python include:
1. Presence of Third Party Modules:
The Python Package Index (PyPI) contains numerous third-party modules that make Python capable of interacting with most of the other languages and platforms.
2. Extensive Support Libraries:
Python provides a large standard library which includes areas like internet protocols, string operations, web services tools and operating system interfaces. Many high use programming tasks have already been scripted into the standard library which reduces the length of code to be written significantly.
3. Open Source and Community Development:
Python language is developed under an OSI-approved open source license, which makes it free to use and distribute, including for commercial purposes.
Further, its development is driven by the community which collaborates for its code through hosting conferences and mailing lists and provides for its numerous modules.
4. Learning Ease and Support Available:
Python offers excellent readability and uncluttered simple-to-learn syntax which helps beginners to utilize this programming language. The code style guidelines, PEP 8, provide a set of rules to facilitate the formatting of code. Additionally, the wide base of users and active developers has resulted in a rich internet resource bank to encourage development and the continued adoption of the language.
5. User-friendly Data Structures:
Python has built-in list and dictionary data structures which can be used to construct fast runtime data structures. Further, Python also provides the option of dynamic high-level data typing which reduces the length of support code that is needed.
6. Productivity and Speed:
Python has clean object-oriented design, provides enhanced process control capabilities, and possesses strong integration and text processing capabilities and its unit testing framework, all of which contribute to the increase in its speed and productivity. Python is considered a viable option for building complex multi-protocol network applications.
Application of Python Libraries
- GUI based desktop applications
- Image processing and graphic design applications
- Scientific and computational applications
- Games
- Web frameworks and web applications
- Enterprise and business applications
- Operating systems
- Language development
- Prototyping
Standard Python Libraries
There are few libraries that everyone should work on if they are going to learn Python for their career:-
1. Requests. The most famous HTTP library written by Kenneth Reitz. It’s a must-have for every python developer.
2. Scrapy. If you are involved in web scraping then this is a must-have library for you. After using this library you won’t use any other.
3. wxPython. A GUI toolkit for python. I have primarily used it in place of Tkinter. You will love it.
4. Pillow. A friendly fork of PIL (Python Imaging Library). It is more user friendly than PIL and is a must-have for anyone who works with images.
5. SQLAlchemy. A database library. Many love it and many hate it. The choice is yours.
6. BeautifulSoup. I know it’s slow but this XML and HTML parsing library is very useful for beginners.
7. Twisted. The most important tool for any network application developer. It has very beautiful API and is used by a lot of famous python developers.
8. Pygame. Which developer does not like to play games and develop them? This library will help you achieve your goal of 2d game development.
9. Pyglet. A 3d animation and game creation engine. This is the engine in which the famous python port of Minecraft was made
10. pyQT. A GUI toolkit for python. It is my second choice after wxpython for developing GUI’s for my python scripts.
11. PyGTK. Another python GUI library. It is the same library in which the famous BitTorrent client is created.
12. Scapy. A packet sniffer and analyzer for python made in python.
13. pywin32. A python library which provides some useful methods and classes for interacting with windows.
14. nose. A testing framework for python. It is used by millions of python developers. It is a must-have if you do test-driven development.
15. SymPy. SymPy can do an algebraic evaluation, differentiation, expansion, complex numbers, etc. It is contained in a pure Python distribution.
16. IPython. I just can’t stress enough how useful this tool is. It is a python prompt on steroids. It has completion, history, shell capabilities, and a lot more. Make sure that you take a look at it.
Top Important Libraries for Web Development
1. Django is an open-source, Python framework that is known for building complex data-driven websites. The framework has templates, libraries, and APIs that helps in building scalable web-development projects. Django is the most popular Python frameworks and is lay down the basis for various popular websites, including Instagram, Pinterest, Bitbucket, Nextdoor, The Washington Times etc.
2. TurboGears is a web application development framework, consisting of Web Server Gateway Interface (WSGI) components such as SQLAlchemy, Repoze, WebOb etc. Similar to Ruby on Rails (RoR) or Apache Struts, TurboGears is built around MVC architecture that helps in rapid web application development.
3. Flask is a micro web framework that’s built-in with development server and support for unit testing. This Unicode based Python framework supports RESTFUL request dispatching and is extensively documented for programmers to get started.
4. Web2py is a cross-platform framework for web development, written in Python. Introduced in 2007, the framework comes with the code editor, debugger, and deployment tools.
5. Bottle is a WSGI micro web-framework, which is distributed as a single file module with no dependencies other than the Python Standard Library. It has support for request dispatching with URL support, key/value databases and templates, and a built-in HTTP server.
6. CherryPy provides the CRUD (Create, Retrieve, Update and Delete) functionalities for applications and helps in managing the project from anywhere using the user’s browser. The framework can run on multiple HTTP servers, have a flexible plugin system, and has built-in profiling, coverage, and testing support.
7. Falcon is a micro-framework for developing small scale applications and backend. The Falcon web framework encourages the REST architectural style and is available with several add-ons, templates, and complementary packages to ease development.
Top Important Libraries for Data Science
Pandas is a must-have tool for anyone trying to process tabular data in Python. It works with CSV, TSV, SQL databases, and other high-level data structures. It allows one to perform a variety of complex commands with few commands, and has other important functionalities such as sorting and grouping of data, and filling out missing data or time series.
NumPy If you are working with lists, arrays, matrices, and multi-dimensional objects, NumPy is the best tool for you. It also boasts a vast collection of mathematical functions and special operators which can manipulate such complex data, making it extremely popular within the data science, statistical and general scientific and STEM community.
SciPy library builds upon Python Numpy, providing modules for data mining based on concepts such as linear regression, model selection, dimensionality, optimization, integration, clustering, and other complex engineering and scientific procedures.
Matplotlib, No statistical and computational application would be complete without a way to visualize that data. With Matplotlib, you can plot charts, histograms, scatter graphs, etc. It easily integrates with other Python shells and runtime shells such as Jupyter Notebook.
Scikit Learning is best for data mining tasks and other high impact computational activities, for example, AI and machine learning. In object detection, it can be used for classification with models such as SVM (Support Vector Machines), model tuning and cluster analysis.
Pydot Similar to Matplotlib, Pydot is also used to visualize data, though for much more complex graph structures such as in neural networks.
Keras is where statistics meets deep learning. It allows high-level neural network APIs integrated with your computations. It greatly simplifies working with neural networks and is built on top of Tensor Flow, Theano, and now, Microsoft’s Cognitive Toolkit (CNTK).
Bokeh is a visualization library, but it has back-end integrations which allow you to display high-impact and interactive visualizations, allowing some of the best presentations of data on websites.
Scrapy A lot of times you’ll need to get data from webpages. Scrappy allows you to create spider bots which automatically collect and structure data from webpages, made even better with extensive API integration.
TensorFlow Developed by Google, TensorFlow allows artificial and neural networks to work with large computational data sets, and integrated with Keras and CNTK. It is preferred because of multilayered nodes with high computational power that can be quickly trained and is famous for powering Google’s voice recognition system.
Plotly If you need to integrate your data visualizations with another web-based API’s not necessarily built on Python, Plotly is the best tool to go for. It has different kinds of unique graphics for different functions.
Seaborn One of the most popular python visualization libraries, Seaborn is used to plotting complex statistical models. You can plot complex models such as time-series and joint plots, with an added Matplotlib backend integration.
Gensim is used for vector space and topological modelling and is also the most popular Python tool for handling unstructured text. It checks the text for statistical inferences and patterns and reproduces succinct semantics or plain text which can then be handled by other applications such as NumPy.
Natural Language Toolkit (NLTK) is also very useful for natural language processing and pattern recognition tasks, and which can be used to develop cognitive models, tokenization, tagging, reasoning and other tasks useful to AI applications.
PyBrain If you are new to the field of data science and need a way to do advanced research with real-life algorithms (say with a background in Matlab), PyBrain is just for you.
Top Important Libraries for GUI programming
- Kivy is an OpenGL ES 2 accelerated framework for the creation of new user interfaces. It supports multiple platforms namely Windows, MacOSX, Linux, Android iOS and Raspberry Pi. It is open source and comes with over 20 widgets in its toolkit.
- PyQT is one of the favoured cross-platform Python bindings implementing the Qt library for the Qt (owned by Nokia) application development framework. Currently, PyQT is available for Unix/Linux, Windows, Mac OS X and Sharp Zaurus. It combines the best of Python and Qt and it up to the programmer to decide whether to create a program by coding or using Qt Designer to create visual dialogues. It is available in both, commercial as well as GPL license. Although some features may not be available in the free version, if your application is open source, then you can use it under the free license.
- Tkinter is commonly bundled with Python, using Tk and is Python’s standard GUI framework. It is popular for its simplicity and graphical user interface. It is open-source and available under the Python License. One of the advantages of choosing Tkinter is that since it comes by default, there is an abundance of resources, both codes and reference books. Also with the community being old and active, many users can help you out in case of doubts. Here are some examples to get you started.
- WxPython is an open-source wrapper for cross-platform GUI library WxWidgets (earlier known as WxWindows) and implemented as a Python extension module. With WxPython you as a developer can create native applications for Windows, Mac OS and Unix. If you’re just beginning to develop applications in WxPython, here is a good simple tutorial you can go through.
- PyGUI is a graphical application cross-platform framework for Unix, Macintosh and Windows. Compared to some other GUI frameworks, PyGUI is by far the simplest and lightweight of them all, as the API is purely in sync with Python.PyGUI inserts very less code between the GUI platform and Python application, hence the display of the application usually displays the natural GUI of the platform.
- PySide is a free and cross-platform GUI toolkit Qt initiated and sponsored by Nokia, Qt is a UI framework and a cross-platform application. PySide currently supports Linux/X11, Mac OS X, Maemo and Windows and, support for Android is in the plans for the near future.PySide provides tools to works with multimedia, XML documents, network, databases and GUI. A key feature of PySide is its API compatibility with PyQt4, so if you wish to migrate to PySide then the process will be hassle-free.
Few Basic Projects Using Library in Python
- Auto Mail Transfer - This type of project can help you to work on SMTP library and Tkinter or any graphics related library so that you can send the automatic email to many users.
- Guess The Number – This could be fun for groups or events where you need to randomly generate a number, say between 0 and 20. It can be used to conduct lotteries, in place of board game dice (or build a dice roller below), or just between players to guess a random number. Skills used: Getting familiar with the random function, variables, integers, print, if/else, and while loops
- Rock, Paper, Scissors Game – One of the most beloved games of all-time and a simple project to test your skills. Start by making it player vs computer. Skills used: Gain a better understanding of while loops and if statements.
- MadLibs Generator – Remember that game we used to play as kids where we would put some really silly words in blanks and laugh hysterically as it was read back? Well, you can relive those hilarious moments by working on your Python skills. Sills used: Strings, variables, concatenation, print.
- Hangman – This game is similar to generating a random number, instead substituting a word where the user guesses the letters. You will also need to create a counter to count the number of guesses of the wrong letters. Skills used: Random library, boolean, input/output, char, string, and length.
- Password Generator – Make a random password generator for your friends and family to keep their accounts secure! Skills used: Random library & sequencing.
- Dice Roller – Similar to the “Guess the Number” game above, building a dice roller can be used to play games, or make one similar to a Magic 8-ball to answer your most profound questions! Skills used: Random library, print, while loops.
- Text-Based Adventure – Think of this as a simple quest game where the user can walk around different rooms and get a description of each one. You’ll have to set limits on how far they can walk, which direction they can go, and a way to track where the user is at in the game. Skills used: Variables, strings, input/output, if/else, print, and list.
- Secret Cipher – Generate and decipher secret cyphers. This works well with a fellow programmer where one of you makes a cypher and the other deciphers the secret message. Skills used: Encryption methods.
Conclusion
Hopefully, by going through all the section in the article, you will understand the uses of python libraries and types of libraries on a broader view. There are more libraries than I have mentioned in each section. These are just mostly and widely used libraries that are being used. In the next article, We will discuss more deeply in each section.
Backend @Fulfil | Founding Team, Ex-SDE-2 @wealth42 | MLH Fellow '21 | DSC Lead '20
4 年Very insightful I must say. Great work Adarsh.
Business Analyst, Advance Excel Reporting, Power Bi Developer
4 年Good Adarsh Srivastava
DevOps Engineer @ Hyperzod
4 年Bhaiya can u tell me why we use keras on the top of tenserflow and can we use any other library on the top of tenserflow Btw thanks for this article my most of the library related confusion now clear.