**In this blog post, let’s understand the difference between Python lists and NumPy Array.**

There are four types of data formats in Python, Including List, Set, Tuple, and Dictionary. Each has a different quality and application.

We’ll focus specifically on the List and compare it with the Array function to see how they are not the same, and which is better in which case.

## Here is the difference between Python List and Array

**The very clear difference is that the List is a default Python function. **

**Everyone can use it using [] and store heterogeneous data, can’t be applied arithmetic operations on it. **

**Whereas, The array is a function from the NumPy library, or you need to install a module (array) to use it- especially to store only the same data type. **

**All Mathematical operations can easily be applied**

## When to use Python List?

The Python list is a collection of elements that can be numeric, character, logical, etc. As such, a list can contain elements of different data types.

It Supports duplicate items with the same values, and the order of the items can be changed by using built-in Python operations.

Also, there are built-in Python functions that make merging and copying list items easier.

You can create a list of data values using [] that will have a negative index and supports ordering.

Normally, the list indexing starts with 0, which means every first member in a list will have an indexing value of 0, procedurally, the second number will have an index number of 1.

## When to use NumPy Arrays?

An array is a set of homogeneous elements, which can be modified by adding, deleting, or accessing the elements.

All of which are allocated with contiguous memory locations- which means, easier to track out an item’s position.

To use Arrays, either you need to import the array module or the NumPy library.

Basically, most of its use is to list out large data sets which all must be the same type.

Ideally, the function comes in handy performing arithmetic operations on similar data types with different index values. Which cannot be done in the Python list.

Importantly, the items in an array are ordered the same as the Python list. Also, enclosed in [] brackets.

## Python list vs NumPy Arrays- Comparison

Parameter | List | Array |

Element types | Contains elements of different data types | Contains only elements of one data type. |

Declaration | For declaration, no module needs to be imported explicitly. | For module declaration, it must import explicitly. |

Performing arithmetic operations | Mathematical operations cannot be performed | Mathematical operations can be performed. |

Merging | Several different types of elements can be nested within each other | All the nested elements must be equal in size. |

When to use | Python lists are the best way for listing out duplicate elements in a shorter sequence | Arrays are recommended when working with longer sequences of homogenous data |

Modification | It is easier to modify (add, remove) data when it is more flexible. | Due to the element-based approach, there is less flexibility. |

Running a loop | There is no need to loop through the list explicitly. | In order to print a list of components in an array, a loop must be formed. |

Memory usage | For easier element addition, it takes up more memory. | Memory size is relatively smaller than the Python list |

Also read: Solution for indexerror**: list index out of range in python**

### What the Python List feature can do?

Python provides lists, which are basic data structures that contain a collection of different items.

Below are some important list characteristics:

**Creating a List**

Simply enclosed elements in large brackets.

List_example = ["blog", "internet", "device"] print (List_example)

**Output**

**Allows duplicate Elements**

List_example = ["blog", "internet", "device", "blog", "internet"] print (List_example)

**Output**

**Support Different data types**

List_example= ["blog", "2", "internet", "device", "blog", "internet", "1"] print (List_example)

**Output**

**Elements have negative indexing**

List_example= ["blog", "2", "internet", "device", "blog", "internet", "1"] print(List_example[-3])

**Output**

### What the Array Feature can do?

By the definition, we know that Arrays can only contain homogenous data types.

However, there’s a difference between Python’s built-in Array module and NumPy array.

Rounding up- Numpy arrays are used for performing advanced arithmetic operations on homogeneous Items, e,g the Matrix operations can be applied.

Whereas, Built-in arrays are good if you want to use basic arithmetic operations on a list of elements.

**Creating a 2D NumPy list**

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) print(arr)

**Output**