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])If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow