Wie man behebt, dass np.logspace() bei falschen Werten startet und endet

Problem:

Sie möchten np.logspace() verwenden, um ein Array logarithmisch verteilter Werte zu erstellen, aber die Start- und Endwerte sind nicht wie erwartet.

Zum Beispiel,

np_logspace_example.py
np.logspace(1e-6, 1e-3, num=10)

produziert Werte von 1.0 bis ~1.02, während Sie Werte von 1e-6 bis 1e-3 erwarten würden.

np_logspace_output.py
array([1.0000023 , 1.00025792, 1.00051361, 1.00076936, 1.00102518,
       1.00128106, 1.001537  , 1.00179302, 1.00204909, 1.00230524])

Lösung

np.logspace() produziert Werte von base ** start bis base ** stop, wobei base die Basis des Logarithmus ist (Standard ist 10).

Was Sie verwenden möchten, ist np.geomspace(), das es Ihnen ermöglicht, die Start- und Endwerte direkt anzugeben:

np_geomspace_example.py
np.geomspace(1e-6, 1e-3, num=10)

Dies produziert die erwarteten Werte:

np_geomspace_output.py
array([1.00000000e-06, 2.15443469e-06, 4.64158883e-06, 1.00000000e-05,
       2.15443469e-05, 4.64158883e-05, 1.00000000e-04, 2.15443469e-04,
       4.64158883e-04, 1.00000000e-03])

Check out similar posts by category: Python, NumPy