Hello Guys, How are you all? Hope You all Are Fine. Today We Are Going To learn about **How to iterate 1d NumPy array with index and value** **in Python**. So Here I am Explain to you all the possible Methods here.

Without wasting your time, Let’s start This Article.

Table of Contents

## How to iterate 1d NumPy array with index and value?

**How to iterate 1d NumPy array with index and value?**this is the only of the 3 solutions which will work with

`numba`

. This is noteworthy since iterating over a NumPy array explicitly is usually only efficient when combined with`numba`

or another means of pre-compilation.**iterate 1d NumPy array with index and value**this is the only of the 3 solutions which will work with

`numba`

. This is noteworthy since iterating over a NumPy array explicitly is usually only efficient when combined with`numba`

or another means of pre-compilation.

## Method 1

There are a few alternatives. The below assumes you are iterating over a 1d NumPy array.

for j in range(theta.shape[0]): # or range(len(theta)) some_function(j, theta[j], theta)

Note this is the only of the 3 solutions which will work with `numba`

. This is noteworthy since iterating over a NumPy array explicitly is usually only efficient when combined with `numba`

or another means of pre-compilation.

for idx, j in enumerate(theta): some_function(idx, j, theta)

The most efficient of the 3 solutions for 1d arrays. See benchmarking below.

for idx, j in np.ndenumerate(theta): some_function(idx[0], j, theta)

Notice the additional indexing step in `idx[0]`

. This is necessary since the index (like `shape`

) of a 1d NumPy array is given as a singleton tuple. For a 1d array, `np.ndenumerate`

is inefficient; its benefits only show for multi-dimensional arrays.

### Performance benchmarking

# Python 3.7, NumPy 1.14.3 np.random.seed(0) arr = np.random.random(10**6) def enumerater(arr): for index, value in enumerate(arr): index, value pass def ranger(arr): for index in range(len(arr)): index, arr[index] pass def ndenumerater(arr): for index, value in np.ndenumerate(arr): index[0], value pass %timeit enumerater(arr) # 131 ms %timeit ranger(arr) # 171 ms %timeit ndenumerater(arr) # 579 ms

## Method 2

You can use `numpy.ndenumerate`

for example

import numpy as np test_array = np.arange(2, 3, 0.1) for index, value in np.ndenumerate(test_array): print(index[0], value)

**Summery**

It’s all About this issue. Hope all Methods helped you a lot. Comment below Your thoughts and your queries. Also, Comment below which Method worked for you? Thank You.

**Also, Read**