Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between np.linspace and np.arange?

I have always used np.arange. I recently came across np.linspace. I am wondering what exactly is the difference between them... Looking at their documentation:

np.arange:

Return evenly spaced values within a given interval.

np.linspace:

Return evenly spaced numbers over a specified interval.

The only difference I can see is linspace having more options... Like choosing to include the last element.

Which one of these two would you recommend and why? And in which cases is np.linspace superior?

like image 681
Sabito 錆兎 stands with Ukraine Avatar asked May 30 '20 17:05

Sabito 錆兎 stands with Ukraine


People also ask

What is the main difference between Linspace () and arange ()?

linspace allow you to define the number of steps. linspace(0,1,20) : 20 evenly spaced numbers from 0 to 1 (inclusive). arange(0, 10, 2) : however many numbers are needed to go from 0 to 10 (exclusive) in steps of 2. The big difference is that one uses a step value, the other a count .

What is NP Linspace do?

linspace() function. The linspace() function returns evenly spaced numbers over a specified interval [start, stop]. The endpoint of the interval can optionally be excluded.

What is the difference between Linspace and Logspace?

Numpy linspace returns evenly spaced numbers over a specified interval. Numpy logspace return numbers spaced evenly on a log scale.


1 Answers

np.linspace allows you to define how many values you get including the specified min and max value. It infers the stepsize:

>>> np.linspace(0,1,11)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])

np.arange allows you to define the stepsize and infers the number of steps(the number of values you get).

>>> np.arange(0,1,.1)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])

contributions from user2357112:

np.arange excludes the maximum value unless rounding error makes it do otherwise.

For example, the following results occur due to rounding error:

>>> numpy.arange(1, 1.3, 0.1)
array([1. , 1.1, 1.2, 1.3])

You can exclude the stop value (in our case 1.3) using endpoint=False:

>>> numpy.linspace(1, 1.3, 3, endpoint=False)
array([1. , 1.1, 1.2])
like image 113
warped Avatar answered Sep 18 '22 15:09

warped