如何修复 np.logspace() 起始和结束值错误

问题:

你想使用 np.logspace() 创建对数间隔的值数组,但起始和结束值不是你期望的。

例如,

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

产生从 1.0~1.02 的值,而你期望从 1e-61e-3 的值。

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])

解决方案

np.logspace() 产生从 base ** startbase ** stop 的值,其中 base 是对数的底(默认为 10)。

你想使用的是 np.geomspace(),它允许你直接指定起始和结束值:

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

这产生期望的值:

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