**What Is Basic Data Structure of NumPy Array?**

The NumPy library in Python provides powerful tools for working with arrays. The basic data structure in NumPy is the __ndarray__, which stands for “n-dimensional array”. This data structure allows for efficient storage and manipulation of large, multi-dimensional datasets.

## Creating a NumPy Array

To create a NumPy array, you can use the **numpy.array()** function. This function takes a sequence-like object, such as a list or tuple, and converts it into an ndarray. For example:

```
import numpy as np
my_list = [1, 2, 3, 4, 5]
my_array = np.array(my_list)
```

In this example, we create a list called `my_list`

with five elements. We then pass this list to the `numpy.array()`

function to create an ndarray called `my_array`

. The resulting array will have the same shape as the input sequence.

## Accessing Elements of a NumPy Array

You can access individual elements of a NumPy array using indexing. The indexing syntax is similar to that of regular Python lists:

my_array = np.array([1, 2, 3, 4, 5])

print(my_array[0]) # Output: 1

print(my_array[2]) # Output: 3

print(my_array[-1]) # Output: 5

In this example, we create an ndarray called `my_array`

. We then use indexing to access the first, third, and last elements of the array.

## Manipulating NumPy Arrays

NumPy provides various functions and methods for manipulating arrays. For example, you can reshape an array using the **numpy.reshape()** function:

reshaped_array = np.reshape(my_array, (5, 1))

In this example, we use the `numpy.reshape()`

function to reshape the `my_array`

from a one-dimensional array into a two-dimensional array with five rows and one column.

## Broadcasting

Broadcasting is a powerful feature in NumPy that allows for performing arithmetic operations on arrays with different shapes. For example:

array1 = np.array([1, 2, 3])

array2 = np.array([4, 5, 6])

result = array1 + array2

In this example, we create two arrays called `array1`

and `array2`

. We then add them together using the **+** operator. The resulting array will have the same shape as the larger input array.

## Numerical Operations on NumPy Arrays

In addition to basic arithmetic operations like addition and subtraction, NumPy provides many built-in functions for performing mathematical operations on arrays. These functions include:

**numpy.sum()**: Computes the sum of all elements in an array.**numpy.mean()**: Computes the mean (average) of all elements in an array.min(): Finds the minimum value in an array.max(): Finds the maximum value in an array.

These are just a few examples of the many functions available in NumPy for numerical operations. Using these functions, you can easily perform complex calculations on large arrays without writing explicit loops.

## Conclusion

The ndarray data structure is at the core of NumPy’s functionality. It provides a powerful tool for working with arrays and performing efficient numerical computations. By understanding the basic data structure and its various operations, you can leverage the full potential of NumPy for your data analysis and scientific computing tasks.