Python Arrays

Python Arrays are an essential data structure that stores multiple values in a single variable. This article explains what arrays are, how they work, and how to create them in Python. We will also cover their advantages, use cases, and practical implementations. By the end, you will have a clear understanding of arrays in Python.

Contents:

  1. Introduction to Python Arrays
  2. Creating an Array in Python
  3. Accessing Array Elements in Python
  4. Accessing Elements Using Slicing in Python
  5. Adding Elements to an Array in Python
  6. Removing Elements from an Array in Python
  7. Looping Through an Array in Python
  8. Array Operations in Python
  9. Difference Between Lists and Arrays in Python
  10. Advantages of Using Arrays in Python
  11. FAQs on Arrays in Python

Introduction to Python Arrays

In Python, arrays store multiple items of the same data type in a single variable. While Python does not have built-in arrays like other programming languages (e.g., C, Java), arrays can be implemented using:

  • Lists
  • The array module
  • NumPy arrays (for advanced operations)

Creating an Array in Python

In Python, arrays can be created in multiple ways. Since Python does not have built-in arrays like C or Java, you can create arrays using:

1. Using Lists as Arrays

advertisement

Lists are the simplest way to create arrays in Python. They can store multiple values, including different data types.

# List of Sanfoundry Course Names (simulating an array)
sanfoundry_courses = ["Python", "Java", "C", "C++", "Data Structures"]
 
print(sanfoundry_courses)
# Output: ['Python', 'Java', 'C', 'C++', 'Data Structures']

Modifying an element:

sanfoundry_courses = ["Python", "Java", "C", "C++", "Data Structures"]
 
sanfoundry_courses[1] = "Java Advanced"
print(sanfoundry_courses)
# Output: ['Python', 'Java Advanced', 'C', 'C++', 'Data Structures']

2. Creating an Array Using the array Module

🎓 Free Certifications on 300 subjects are live for December 2025. Register Now!

The array module in Python provides a way to create arrays with fixed data types. You need to import the module first.

import array
 
# Creating an array of floats for course ratings
course_ratings = array.array('f', [4.5, 4.7, 4.3, 4.8, 4.6])
 
# Accessing and modifying elements
print(course_ratings[0])  # Output: 4.5
course_ratings[1] = 4.9
print(course_ratings)  
# Output: array('f', [4.5, 4.9, 4.3, 4.8, 4.6])

3. Using NumPy Arrays (For Advanced Operations)

If you need to perform numerical operations or work with multi-dimensional arrays, NumPy is the best choice.

advertisement
import numpy as np
 
# Creating a NumPy array of course durations (in hours)
course_durations = np.array([40, 35, 50, 45, 30])
 
print(course_durations)
# Output: [40 35 50 45 30]

Modifying an element:

import numpy as np
 
# Creating a NumPy array of course durations (in hours)
course_durations = np.array([40, 35, 50, 45, 30])
 
course_durations[2] = 55
print(course_durations)
# Output: [40 35 55 45 30]

4. Using list() to Create Arrays from Ranges or Strings

From a range:

# Creating an array from a range
numbers = list(range(5))
print(numbers)
# Output: [0, 1, 2, 3, 4]

From a string:

# Creating an array from a string
char_list = list("Sanfoundry")
print(char_list)
# Output: ['S', 'a', 'n', 'f', 'o', 'u', 'n', 'd', 'r', 'y']

5. Creating a 2D Array Using Nested Lists

You can create multi-dimensional arrays using nested lists.

# 2D Array of Course Durations and Ratings
course_data = [
    [40, 4.5],  # Python
    [35, 4.7],  # Java
    [50, 4.3],  # C
    [45, 4.8],  # C++
    [30, 4.6]   # Data Structures
]
 
print(course_data[1])  
# Output: [35, 4.7]
 
# Accessing specific elements
print(course_data[2][1])  
# Output: 4.3 (Rating for C course)

Accessing Array Elements in Python

In Python, you can access array elements using indexing and slicing. The methods vary slightly depending on whether you are using Lists, array Module, and NumPy Arrays.

1. Accessing Elements from a List (Array)

Lists in Python use zero-based indexing, where: The first element is at index 0 and the last element is at index -1 (reverse indexing).

# List of Sanfoundry Course Names
sanfoundry_courses = ["Python", "Java", "C", "C++", "Data Structures"]
 
# Accessing the first element
print(sanfoundry_courses[0])  
# Output: Python
 
# Accessing the last element
print(sanfoundry_courses[-1])  
# Output: Data Structures
 
# Accessing the third element
print(sanfoundry_courses[2])  
# Output: C

2. Accessing Elements from array Module

To create an array using the array module, import the module and define the type and values.

import array
 
# Creating an array of course IDs
course_ids = array.array('i', [101, 102, 103, 104, 105])
 
# Accessing the first course ID
print(course_ids[0])  
# Output: 101
 
# Accessing the last course ID
print(course_ids[-1])  
# Output: 105
 
# Accessing the third course ID
print(course_ids[2])  
# Output: 103

3. Accessing Elements from NumPy Arrays

NumPy arrays are more efficient and allow easy element access using indexing.

import numpy as np
 
# NumPy array of course durations (in hours)
course_durations = np.array([40, 35, 50, 45, 30])
 
# Accessing the first duration
print(course_durations[0])  
# Output: 40
 
# Accessing the last duration
print(course_durations[-1])  
# Output: 30
 
# Accessing the fourth duration
print(course_durations[3])  
# Output: 45

Accessing Elements Using Slicing in Python

Slicing allows you to access a portion of an array or list by specifying a range of indices. It is a powerful technique that works with lists, arrays, and other sequence types.

Slicing Syntax

The slicing syntax follows this format:

array[start:end:step]
  • start – The index where the slice starts (inclusive). Default is 0.
  • end – The index where the slice ends (exclusive). Default is the length of the array.
  • step – The step size or interval between indices. Default is 1.

1. Slicing a List (Array) in Python

# List of Sanfoundry Courses
sanfoundry_courses = ["Python", "Java", "C", "C++", "Data Structures", "Machine Learning"]
 
# Slicing the first 3 courses
print(sanfoundry_courses[0:3])
# Output: ['Python', 'Java', 'C']
 
# Slicing from index 2 to 5
print(sanfoundry_courses[2:5])
# Output: ['C', 'C++', 'Data Structures']
 
# Slicing the last 3 courses
print(sanfoundry_courses[-3:])
# Output: ['C++', 'Data Structures', 'Machine Learning']
 
# Slicing with a step of 2
print(sanfoundry_courses[::2])
# Output: ['Python', 'C', 'Data Structures']
 
# Slicing in reverse order
print(sanfoundry_courses[::-1])
# Output: ['Machine Learning', 'Data Structures', 'C++', 'C', 'Java', 'Python']

2. Slicing Using array Module

import array
 
# Creating an array of course IDs
course_ids = array.array('i', [101, 102, 103, 104, 105, 106])
 
# Slicing the first 3 course IDs
print(course_ids[0:3])
# Output: array('i', [101, 102, 103])
 
# Slicing from index 2 to 5
print(course_ids[2:5])
# Output: array('i', [103, 104, 105])

3. Slicing NumPy Arrays

import numpy as np
 
# Creating a NumPy array of course durations (in hours)
course_durations = np.array([40, 35, 50, 45, 30, 25])
 
# Slicing from index 1 to 4
print(course_durations[1:4])
# Output: [35 50 45]
 
# Slicing with a step of 2
print(course_durations[::2])
# Output: [40 50 30]
 
# Slicing in reverse order
print(course_durations[::-1])
# Output: [25 30 45 50 35 40]

4. Slicing a Bytearray

# Creating a bytearray with ASCII values
data = bytearray([65, 66, 67, 68, 69, 70])  # ASCII for A, B, C, D, E, F
 
# Slicing the first 3 characters
print(data[:3])
# Output: bytearray(b'ABC')
 
# Slicing from index 2 to 5
print(data[2:5])
# Output: bytearray(b'CDE')
 
# Slicing in reverse order
print(data[::-1])
# Output: bytearray(b'FEDCBA')

Adding Elements to an Array in Python

In Python, you can add elements to arrays using different methods, depending on the type of array you are working with. Here’s how you can add elements to lists, arrays (array module), and NumPy arrays.

1. Adding Elements to a List (Array)

Python lists can be treated as arrays and provide multiple methods to add elements.

a. Using append() – Adds a Single Element to the End

# List of Sanfoundry Courses
sanfoundry_courses = ["Python", "Java", "C"]
 
# Adding a new course using append()
sanfoundry_courses.append("C++")
 
print(sanfoundry_courses)
# Output: ['Python', 'Java', 'C', 'C++']

b. Using insert() – Adds an Element at a Specific Position

# List of Sanfoundry Courses
sanfoundry_courses = ["Python", "Java", "C"]
 
# Inserting 'Data Structures' at index 1
sanfoundry_courses.insert(1, "Data Structures")
 
print(sanfoundry_courses)
# Output: ['Python', 'Data Structures', 'Java', 'C']

c. Using extend() – Adds Multiple Elements to the End

# List of Sanfoundry Courses
sanfoundry_courses = ["Python", "Java", "C"]
 
# Adding multiple courses using extend()
sanfoundry_courses.extend(["C++", "Data Structures", "Machine Learning"])
 
print(sanfoundry_courses)
# Output: ['Python', 'Java', 'C', 'C++', 'Data Structures', 'Machine Learning']

2. Adding Elements to an array Module Array

To use arrays with fixed types, you need to import the array module.

import array
 
# Creating an array of course IDs
course_ids = array.array('i', [101, 102, 103])
 
# Adding a new course ID using append()
course_ids.append(104)
print(course_ids)
# Output: array('i', [101, 102, 103, 104])
 
# Adding multiple course IDs using extend()
course_ids.extend([105, 106])
print(course_ids)
# Output: array('i', [101, 102, 103, 104, 105, 106])
 
# Inserting a course ID at index 1
course_ids.insert(1, 110)
print(course_ids)
# Output: array('i', [101, 110, 102, 103, 104, 105, 106])

3. Adding Elements to a NumPy Array

NumPy arrays do not support direct modification like lists, but you can use np.append() to add elements.

import numpy as np
 
# Creating a NumPy array of course durations
course_durations = np.array([40, 35, 50])
 
# Adding a single element to the array
course_durations = np.append(course_durations, 45)
print(course_durations)
# Output: [40 35 50 45]
 
# Adding multiple elements
course_durations = np.append(course_durations, [30, 25])
print(course_durations)
# Output: [40 35 50 45 30 25]

4. Using + to Add Elements in NumPy Arrays

import numpy as np
 
# Creating NumPy arrays
array1 = np.array([40, 35, 50])
array2 = np.array([45, 30, 25])
 
# Concatenating arrays
combined_array = np.concatenate((array1, array2))
print(combined_array)
# Output: [40 35 50 45 30 25]

5. Adding Elements Using List Comprehension

# List of course durations
course_durations = [40, 35, 50]
 
# Adding 5 to each duration
updated_durations = [duration + 5 for duration in course_durations]
 
print(updated_durations)
# Output: [45, 40, 55]

Removing Elements from an Array in Python

In Python, you can remove elements from an array using different methods depending on the type of array you are working with. Below are the various ways to remove elements from lists, array module arrays, and NumPy arrays.

1. Removing Elements from a List (Array)

Python lists are commonly used as arrays. You can remove elements using:

a. Using remove() – Removes First Occurrence of a Value

# List of Sanfoundry Courses
sanfoundry_courses = ["Python", "Java", "C", "C++", "Data Structures"]
 
# Removing 'C' from the list
sanfoundry_courses.remove("C")
 
print(sanfoundry_courses)
# Output: ['Python', 'Java', 'C++', 'Data Structures']

Note: If the element is not found, ValueError is raised.

b. Using pop() – Removes Element at a Specific Index

# List of Sanfoundry Courses
sanfoundry_courses = ["Python", "Java", "C", "C++", "Data Structures"]
 
# Removing element at index 2
removed_course = sanfoundry_courses.pop(2)
 
print(f"Removed Course: {removed_course}")
# Output: Removed Course: C
 
print(sanfoundry_courses)
# Output: ['Python', 'Java', 'C++', 'Data Structures']

Note: pop() returns the removed element.

c. Using del – Deletes an Element or a Slice

# List of Sanfoundry Courses
sanfoundry_courses = ["Python", "Java", "C", "C++", "Data Structures"]
 
# Deleting element at index 1
del sanfoundry_courses[1]
print(sanfoundry_courses)
# Output: ['Python', 'C', 'C++', 'Data Structures']
 
# Deleting a slice of elements
del sanfoundry_courses[1:3]
print(sanfoundry_courses)
# Output: ['Python', 'Data Structures']

d. Using clear() – Removes All Elements

# List of Sanfoundry Courses
sanfoundry_courses = ["Python", "Java", "C", "C++", "Data Structures"]
 
# Removing all elements
sanfoundry_courses.clear()
print(sanfoundry_courses)
# Output: []

2. Removing Elements from an array Module Array

You can use pop() and remove() to remove elements from an array module array.

import array
 
# Creating an array of course IDs
course_ids = array.array('i', [101, 102, 103, 104, 105])
 
# Removing an element by value
course_ids.remove(103)
print(course_ids)
# Output: array('i', [101, 102, 104, 105])
 
# Removing element at index 2
course_ids.pop(2)
print(course_ids)
# Output: array('i', [101, 102, 105])

Note: remove() raises ValueError if the element is not found.

3. Removing Elements from a NumPy Array

NumPy arrays do not support remove() or pop() directly. You can use np.delete() to remove elements.

import numpy as np
 
# Creating a NumPy array of course durations
course_durations = np.array([40, 35, 50, 45, 30])
 
# Removing element at index 2
updated_durations = np.delete(course_durations, 2)
print(updated_durations)
# Output: [40 35 45 30]

Note: np.delete() returns a new array and does not modify the original array.

4. Removing Elements Using filter()

# List of course durations
course_durations = [40, 35, 50, 45, 30]
 
# Removing all durations less than 40
filtered_durations = list(filter(lambda x: x >= 40, course_durations))
 
print(filtered_durations)
# Output: [40, 50, 45]

Looping Through an Array in Python

Looping through an array allows you to access, modify, or process each element efficiently. Depending on the type of array (Lists, array module, or NumPy), Python provides different ways to iterate over elements.

1. Looping Through a List (Array)

A Python list is the most common data structure that behaves like an array.

1. Using for Loop

# List of Sanfoundry Courses
sanfoundry_courses = ["Python", "Java", "C", "C++", "Data Structures"]
 
# Looping through the list
for course in sanfoundry_courses:
    print(course)

Output:

Python
Java
C
C++
Data Structures

2. Using for Loop with range() and Index

# List of Sanfoundry Courses
sanfoundry_courses = ["Python", "Java", "C", "C++", "Data Structures"]
 
# Looping through using index
for i in range(len(sanfoundry_courses)):
    print(f"Course {i+1}: {sanfoundry_courses[i]}")

Output:

Course 1: Python
Course 2: Java
Course 3: C
Course 4: C++
Course 5: Data Structures

3. Using while Loop

# List of Sanfoundry Courses
sanfoundry_courses = ["Python", "Java", "C", "C++", "Data Structures"]
 
# Looping through using while loop
i = 0
while i < len(sanfoundry_courses):
    print(sanfoundry_courses[i])
    i += 1

Output:

Python
Java
C
C++
Data Structures

4. Looping Through an array Module Array

The array module is used to work with arrays of a fixed type.

import array
 
# Creating an array of course IDs
course_ids = array.array('i', [101, 102, 103, 104, 105])
 
# Looping through array
for course_id in course_ids:
    print(f"Course ID: {course_id}")

Output:

Course ID: 101
Course ID: 102
Course ID: 103
Course ID: 104
Course ID: 105

5. Looping Through a NumPy Array

NumPy arrays allow you to loop through elements efficiently.

import numpy as np
 
# Creating a NumPy array of course durations
course_durations = np.array([40, 35, 50, 45, 30])
 
# Looping through NumPy array
for duration in course_durations:
    print(f"Duration: {duration} hours")

Output:

Duration: 40 hours
Duration: 35 hours
Duration: 50 hours
Duration: 45 hours
Duration: 30 hours

Array Operations in Python

Python provides various operations for working with arrays, depending on whether you’re using lists, the array module, or NumPy arrays. Below are the key operations you can perform on arrays.

Operation Python Lists NumPy Arrays
Create [] , list() np.array()
Modify Elements list[index] = value array[index] = value
Add Elements append(), insert() np.append()
Remove Elements remove(), pop(), del np.delete()
Slice list[start:end] array[start:end]
Concatenate list1 + list2 np.concatenate((arr1, arr2))
Repeat Elements list * n np.tile(array, n)
Mathematical Ops Requires Loop Vectorized (+, -, *, /)
Find Max/Min max(list), min(list) np.max(array), np.min(array)
Sum Elements sum(list) np.sum(array)
Mean/Average Manual Calculation np.mean(array)
Sorting list.sort() or sorted(list) np.sort(array)
Filtering List Comprehension [x for x in list if condition] Boolean Indexing array[array > value]

Difference Between Lists and Arrays in Python

In Python, both lists and arrays are used to store multiple items, but they differ in terms of functionality, performance, and use cases. Below is a detailed comparison with examples.

Feature Python Lists Python Arrays
Data Type Can store different data types (int, float, str, etc.) Stores elements of the same data type
Memory Efficiency Consumes more memory Consumes less memory
Speed Slower due to dynamic typing Faster as all elements are of the same type
Module Used Built-in Requires array module or numpy
Mathematical Operations Requires loops for element-wise operations Supports direct element-wise operations in NumPy
Flexibility Can store mixed data types Strictly homogeneous (same data type)
Use Case General-purpose data storage Efficient numerical computing

Advantages of Using Arrays in Python

  • Memory Efficiency: Arrays consume less memory compared to lists since they store elements of the same data type, making them more space-efficient.
  • Faster Processing: Arrays perform faster computations than lists, especially for large datasets, because they use contiguous memory allocation.
  • Element-wise Operations: NumPy arrays allow direct mathematical operations (+, -, *, /) on elements without the need for loops, improving efficiency.
  • Optimized for Large Data: Arrays handle large datasets efficiently, making them ideal for data analysis, scientific computing, and machine learning.
  • Efficient Slicing: With arrays, you can extract data quickly and efficiently using advanced slicing techniques.
  • Supports Multi-Dimensional Data: NumPy arrays allow multi-dimensional data storage, which is crucial for fields like machine learning, image processing, and scientific computing.

FAQs on Arrays in Python

1. What is an array in Python?
An array in Python is a data structure that stores multiple elements of the same data type in a contiguous memory location. Unlike lists, arrays optimize memory usage and performance.

2. How do you create an array in Python?
You can create an array using the array module or NumPy:

# Using array module
import array
arr = array.array('i', [1, 2, 3, 4, 5])  # 'i' stands for integer type
 
# Using NumPy
import numpy as np
arr = np.array([1, 2, 3, 4, 5])

3. What is the difference between lists and arrays?
Lists can store different data types, while arrays require all elements to be of the same type. Arrays are optimized for performance, making them more efficient for numerical and large-scale data processing.

4. How do you remove an element from an array?
To remove elements, you can use remove() to delete a specific value or pop() to remove an element at a given index.

5. What are multi-dimensional arrays?
A multi-dimensional array stores data in multiple rows and columns. It is commonly used for representing matrices and handling complex data structures.

6. What is NumPy?
NumPy (Numerical Python) is a powerful library for numerical computing in Python. It provides high-performance multi-dimensional arrays and a variety of mathematical functions for efficient data manipulation.

7. Why should I use NumPy instead of lists?
NumPy is faster, more memory-efficient, and provides advanced mathematical operations that lists do not support. It is essential for performance-critical applications in data science and engineering.

Key Points to Remember

Here is the list of key points we need to remember about “Python Arrays”.

  • Python does not have built-in arrays like C or Java, but lists, the array module, and NumPy arrays can be used to work with arrays. Lists are flexible, while NumPy arrays are more efficient for numerical computations.
  • Lists in Python can store multiple data types and provide dynamic resizing. They are widely used due to their flexibility, but they consume more memory compared to NumPy arrays.
  • The array module allows creating arrays with a fixed data type, making them more memory-efficient than lists. However, they are less commonly used than NumPy arrays for numerical operations.
  • NumPy arrays are powerful for handling large datasets and performing mathematical operations efficiently. They support multi-dimensional arrays and offer faster computation compared to lists.
  • Adding elements to lists is done using append(), insert(), and extend(), while NumPy arrays use np.append() and np.concatenate(). Removing elements can be done using remove(), pop(), del, or np.delete().
  • Arrays are useful for storing and processing large amounts of data efficiently. They are widely used in data science, machine learning, and scientific computing due to their performance advantages.

advertisement
Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
I’m Manish - Founder and CTO at Sanfoundry. I’ve been working in tech for over 25 years, with deep focus on Linux kernel, SAN technologies, Advanced C, Full Stack and Scalable website designs.

You can connect with me on LinkedIn, watch my Youtube Masterclasses, or join my Telegram tech discussions.

If you’re in your 20s–40s and exploring new directions in your career, I also offer mentoring. Learn more here.