# What Is the Data Structure Most Commonly Used in NumPy?

//

Angela Bailey

The data structure most commonly used in NumPy is the ndarray (short for N-dimensional array). It is a powerful multi-dimensional container for homogeneous data, meaning that all elements in the array must have the same data type.

## Benefits of Using ndarrays

The ndarray provides several advantages over regular Python lists:

• Efficiency: ndarrays are highly efficient for performing mathematical operations on large datasets. These operations can be performed element-wise, making it faster and more memory-efficient compared to traditional Python loops.
• Flexibility: ndarrays can have any number of dimensions, allowing you to work with multi-dimensional data such as images, audio signals, or even higher-dimensional datasets.
• Data Manipulation: NumPy provides a wide range of functions for manipulating ndarrays, including reshaping, slicing, and joining arrays. These operations are essential for data preprocessing and analysis.

## Creating ndarrays

To create an ndarray in NumPy, you can use various methods. Here are three common ways:

### 1. Converting from a List

You can convert a regular Python list into an ndarray using the `numpy.array()` function. This function takes a list as its argument and returns an ndarray with the same elements.

``````
import numpy as np

my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
print(my_array)
# Output: [1 2 3 4 5]
```
```

### 2. Using Built-in Functions

NumPy provides several built-in functions for creating ndarrays with specific properties. For example, you can use `numpy.zeros()` to create an array filled with zeros or `numpy.ones()` to create an array filled with ones.

zeros_array = np.zeros((3, 4))
print(zeros_array)
# Output:
# [[0. 0.] # [0.

0.]]

ones_array = np.ones((2, 3))
print(ones_array)
# Output:
# [[1. 1.]

# [1.]]

### 3. Generating Random Values

You can also create ndarrays filled with random values using the `numpy.random` module.

random_array = np.random.rand(2, 2)
print(random_array)
# Output:
# [[0.79424603, .91952365]
# [0.43140143, .35085784]]

## Accessing and Manipulating ndarrays

Once you have created an ndarray, you can access and manipulate its elements using indexing and slicing techniques.

Indexing:

my_array = np.array([1, 2, 3, 4, 5])
print(my_array[2])
# Output: 3

Slicing:

my_array = np.array([1, 2, 3, 4, 5])
print(my_array[1:4])
# Output: [2, 3, 4]

NumPy also provides various functions for manipulating ndarrays. For example:

• Reshaping: You can change the shape of an ndarray using the `numpy.reshape()` function.
• Joining: You can concatenate multiple ndarrays using functions like `numpy.concatenate()`, `numpy.vstack()`, or `numpy.hstack()`.

## Conclusion

The ndarray is the fundamental data structure in NumPy that enables efficient and flexible handling of multi-dimensional data. Understanding its features and functions is essential for effectively working with numerical data in Python.

In this article, we explored the benefits of using ndarrays over regular Python lists, discussed different methods to create ndarrays, and learned how to access and manipulate their elements. As you continue your journey in data analysis or scientific computing with Python, mastering NumPy’s ndarray will undoubtedly prove invaluable.