python - Difference in output between numpy linspace and numpy logspace -


numpy linspace returns evenly spaced numbers on specified interval. numpy logspace return numbers spaced evenly on log scale.

i don't understand why numpy logspace returns values "out of range" bounds set. take numbers between 0.02 , 2.0:

import numpy np print np.linspace(0.02, 2.0, num=20) print np.logspace(0.02, 2.0, num=20) 

the output first is:

[ 0.02        0.12421053  0.22842105  0.33263158  0.43684211  0.54105263   0.64526316  0.74947368  0.85368421  0.95789474  1.06210526  1.16631579   1.27052632  1.37473684  1.47894737  1.58315789  1.68736842  1.79157895   1.89578947  2.        ] 

that looks correct. however, output np.logspace() wrong:

[   1.04712855    1.33109952    1.69208062    2.15095626    2.73427446     3.47578281    4.41838095    5.61660244    7.13976982    9.07600522    11.53732863   14.66613875   18.64345144   23.69937223   30.12640904    38.29639507   48.68200101   61.88408121   78.6664358   100.        ] 

why output 1.047 100.0?

2017 update: numpy 1.12 includes function original question asked, i.e. returns range between 2 values evenly sampled in log space.

the function numpy.geomspace

>>> np.geomspace(0.02, 2.0, 20) array([ 0.02      ,  0.0254855 ,  0.03247553,  0.04138276,  0.05273302,         0.06719637,  0.08562665,  0.1091119 ,  0.13903856,  0.17717336,         0.22576758,  0.28768998,  0.36659614,  0.46714429,  0.59527029,         0.75853804,  0.96658605,  1.23169642,  1.56951994,  2.        ]) 

Comments