This article was published as a part of the Data Science Blogathon

Nowadays, the Python programming language becomes one of the most popular languages. When we write the codes for Production level Data Science Projects, what happens is that our Python code grows in size, and as a result most probably it becomes unorganized over time. So, keeping your code in the same file as it grows makes your code difficult to maintain and debug.

So, to resolve these kinds of issues, Python modules help us to organize and group the content by using files and folders. This modular programming approach where we have broken the code into separate parts is where python modules come into the picture. So, In this article, I will help you to understand the complete intuition behind modules in Python in a detailed manner.

*Note: If you are more interested in learning concepts in an Audio-Visual format, So to learn the basic concepts of Python Modules and some other related stuff you may see this video.*

- Introduction
- What are Python Modules?
- How to create Python Modules?
- How to use Python Modules?
- Variables in Python Modules
- How to rename a Python Module?
- How does Import from Modules work?
- Advantages of Modules
- Python Built-in Modules
- Working with Math Module of Python
- Trigonometric Ratios
- Working with Statistics Module of Python
- Frequently Asked Questions

**So, Let’s Get Started,**

In Python,

Modulesare simply files with the “.py” extension containing Python code that can be imported inside another Python Program.

In simple terms, we can consider a module to be the same as a code library or a file that contains a set of functions that you want to include in your application.

With the help of modules, we can organize related functions, classes, or any code block in the same file. So, It is considered a best practice while writing bigger codes for production-level projects in Data Science is to split the large Python code blocks into modules** **containing up to 300–400 lines of code.

The module contains the following components:

- Definitions and implementation of classes,
- Variables, and
- Functions that can be used inside another program.

**Let’s try to gain more understanding of the concept with the help of an example:**

Suppose we want to make an application for a calculator. We want to include few operations in our application such as addition, subtraction, multiplication, division, etc.

Now, here what we will be doing is to break the complete code into separate parts and simply create one module for all these operations or separate modules for each of the operations. And then we can call these modules in our main program logic.

Here the core idea is to minimize the code, and if we create modules, it doesn’t mean we can only use it for this program, but we can even call these modules for other programs as well.

Image Source: **Link**

Now that we have understood the concept of modules, let us try to understand how we can create and use a module in python and also see some other functionalities related to Modules.

To create a module, we have to save the code that we wish in a file with the file extension **“.py”**. Then, the name of the Python file becomes the name of the module.

In this program, a function is created with the name **“welcome” **and save this file with the name **mymodule.py** i.e. name of the file, and with the extension **“.py”**.

We saved the following code in a file named **mymodule.py**

def welcome(name): print("Hello, " + name +" to Analytics Vidhya")

To incorporate the module into our program, we will use the **import keyword,** and to get only a few or specific methods or functions from a module, we use the **from**** ****keyword.**

** NOTE: **When we are using a function from a module, then we use the following syntax:

module_name.function_name

Now to use the module which we have just created, we are using the import statement:

In this example, we will Import the module named mymodule, and then call the welcome function with a given argument:

import mymodule mymodule.welcome("Chirag Goyal")

__Output:__

Hello, Chirag Goyal to Analytics Vidhya

The module can contain functions, as already described, but can also contain variables of all types such as arrays, dictionaries, objects, etc.

Save this code in the file **mymodule.py**

person1 = { "name": "Chirag Goyal", "age": 19, "country": "India" "education”: “IIT Jodhpur" }

In this example, we will Import the module named mymodule, and then try to access the person1 dictionary components:

import mymodule a = mymodule.person1["age"] b = mymodule.person1["education"] c = mymodule.person1["country"] print(a)

__Output:__

19

We can name the file of the module whatever you like, but we have to note that it must have the file extension **“.py”**.

To rename the module name, we can create an alias when you import a module, with the help of the **as keyword**:

Create an alias for mymodule with the name **new_module**:

import mymodule as new_module a = new_module.person1["age"] b = new_module.person1["education"] c = new_module.person1["country"] print(a)

__Output:__

19

If we want to choose to import only some parts from a module, then we can do this with the help of the **from keyword**.

Now, we have a module named **mymodule** that has one function and one dictionary:

def welcome(name): print("Hello, " + name +" to Analytics Vidhya")

person1 = { "name": "Chirag Goyal", "age": 19, "country": "India" "education”: “IIT Jodhpur" }

Now, Let’s try to Import only the person1 dictionary from the module named **mymodule**:

from mymodule import person1 print (person1["age"])

__Output:__

19

** NOTE:** Here we have to note that when we try to import using the

Use **person1[“age”],** not** mymodule.person1[“age”]**

Some of the advantages while working with modules in Python is as follows:

Working with modules makes the code reusable.

The module focuses on a small proportion of the problem, rather than focusing on the entire problem.

A separate namespace is defined by a module that helps to avoid collisions between identifiers.

As we know that the Python interactive shell has a number of built-in functions. As a shell start, these functions are loaded automatically and are always available, such as,

- print() and input() for I/O,
- Number conversion functions such as int(), float(), complex(),
- Data type conversions such as list(), tuple(), set(), etc.

In addition to these many built-in functions, there are also a large number of pre-defined functions available as a part of libraries bundled with Python distributions. These functions are defined in modules which are known as **built-in modules**.

These built-in modules are written in C language and integrated with the Python shell.

To display a list of all of the available modules in Python Programming Language, we can use the following command in the Python console:

`help('modules') `

The output to the above code is shown below:

Now, let’s discuss some of the useful and frequently used built-in modules of Python.

- Math Module
- Statistics Module

Some of the most popular mathematical functions that are defined in the math module include,

- Trigonometric functions,
- Representation functions,
- Logarithmic functions,
- Angle conversion functions, etc.

In addition, two mathematical constants- **pi** and **e** are also defined in this module.

In Mathematics, Pi is a well-known mathematical constant. Its value is **3.141592653589793**.

>>> import math >>> math.pi 3.141592653589793

Another well-known mathematical constant is **e, **which is known as **Euler’s number**. Its value equals **2.718281828459045**.

>>> import math >>> math.e 2.718281828459045

For calculating various trigonometric ratios for a given angle, the math module contains several functions. The trigonometric functions such as **sin, cos, tan,** etc. take the angle argument in radians. While we are used to expressing the angle in degrees. In the math module, we have two angle conversion functions that help us to convert the angle from degrees to radians and vice versa:

- degrees()
- radians()

In this example, we will be converting the angle of 30 degrees to radians and then back again to the degree.

** NOTE:** π radians is equivalent to 180 degrees.

```
>>> import math
>>> math.radians(30)
0.5235987755982988
>>> math.degrees(math.pi/6)
29.999999999999996
```

In this example, we will find the value of sin, cos, and tan ratios for the angle of 30 degrees which in radians is equal to 0.5235987755982988 radians.

```
>>> import math
>>> math.sin(0.5235987755982988)
0.49999999999999994
>>> math.cos(0.5235987755982988)
0.8660254037844387
>>> math.tan(0.5235987755982988)
0.5773502691896257
```

You may also try some more functions of the math module such as math.log(), math.log10(), math.pow(). math.sqrt(), math.exp(), math.ceil(), math.floor(), etc.

To learn more about the math module, refer to the **link**.

The statistics module provides functions to mathematical statistics of numeric data. Some of the popular statistical functions are defined in this module are as follows:

- Mean
- Median
- Mode
- Standard Deviation

The mean() method returns the arithmetic mean of the numbers present in a list.

>>> import statistics >>> statistics.mean([2,5,6,9]) 5.5

The median() method returns the middle value of numeric data present in a list.

>>> import statistics >>> statistics.median([1,2,3,7,8,9]) 5.0 >>> statistics.median([1,2,3,8,9]) 3.0

The mode() method returns the most common data point present in the list.

>>> import statistics >>> statistics.mode([2,5,3,2,8,3,9,4,2,5,6]) 2

The stdev() method returns the standard deviation on a given sample in the form of a list.

>>> import statistics >>> statistics.stdev([1,1.5,2,2.5,3,3.5,4,4.5,5]) 1.3693063937629153

To learn more about the statistics module, refer to the **link**.

** NOTE: **There are also other modules in Python but here we discuss only two modules to understand how the concept of modules in Python works and you can similarly use the other Python built-in modules also.

To learn more about the Modules in Python, you can refer to the **link**.

A. Python modules can be broadly classified into three types: built-in modules, standard library modules, and third-party modules. Built-in modules are included with Python and provide fundamental functionalities. Standard library modules extend the capabilities of Python with a wide range of functionalities. Third-party modules are created by the Python community and offer additional features and functionalities beyond the standard library.

A. In Python, modules are files that contain Python code, typically defined in a separate file with a .py extension. Modules are used to organize and reuse code, allowing you to split your program’s functionality into independent, reusable units. They provide a way to encapsulate related code, variables, and functions, making it easier to manage and maintain large projects. Modules can be imported into other Python scripts to access their defined objects and functionalities.

You can also check my previous blog posts.

**Previous Data Science Blog posts.**

Here is **my Linkedin profile** in case you want to connect with me. I’ll be happy to be connected with you.

For any queries, you can mail me on **Gmail**.

*Thanks for reading!*

I hope that you have enjoyed the article. If you like it, share it with your friends also.Something not mentioned or want to share your thoughts? Feel free to comment below And I’ll get back to you. 😉

*The media shown in this article are not owned by Analytics Vidhya and are used at the Author’s discretion.*

Lorem ipsum dolor sit amet, consectetur adipiscing elit,

I would like to congratulate you for the article's quality. Thank you very much!! Greetings from Brazil! ;)