# Built-in range() or numpy.arange(): which is more efficient?

Learn, which is more efficient method Python's built-in range() or NumPy's arange() method? By Pranit Sharma Last updated : October 10, 2023

NumPy is an abbreviated form of Numerical Python. It is used for different types of scientific operations in python. Numpy is a vast library in python which is used for almost every kind of scientific or mathematical operation. It is itself an array which is a collection of various methods and functions for processing the arrays.

## Python range() vs numpy.arange()

While iterating over a large array with a range expression, should we use Python's built-in range() function or numpy's arange() to get the best performance. The answer to this question depends upon the working of both methods.

For large arrays, a vectorised numpy operation is the fastest. If we want to loop, we should prefer xrange()/range() and avoid using numpy.arange().

In numpy we should use combinations of vectorized calculations, ufuncs and indexing to solve our problems as it runs at C speed. Looping over numpy arrays is inefficient compared to this.

Let us check the speed of both methods,

## Python code to understand - which is more efficient method Python's built-in range() or NumPy's arange() method

```import timeit

# For Loop using range
print("Time for range function:\n",timeit.Timer('for i in range(1):pass').timeit(),"\n")

import numpy as np

# For Loop using np.arange
print("Time for range function:\n",timeit.Timer('for i in np.arange(1):pass', globals=dict(np=np)).timeit(),"\n")
```

### Output

The output of the above program is: