在 Python 的“range()”函数中处理十进制步长值
无法在 Python 的“range()”中使用十进制步长增量' 功能?当您希望以 0.1 的步长在 0 和 1 之间迭代时,就会出现问题,因为步长参数不允许为零。
采用替代方法
要克服此限制,请避免直接使用小数步长。相反,用要生成的点的数量来表达所需的端点。这有助于防止可能产生不准确结果的浮点舍入错误。
利用 NumPy 的“linspace”函数
NumPy 的“linspace”函数是一个实用的解决方案。它接受所需的点数并允许指定端点包含或排除:
>>> 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.linspace(0, 1, 10, endpoint=False) array([ 0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
利用 numpy.arange 函数进行十进制步长
如果浮动 -点步长值必不可少,可以使用numpy.arange:
>>> import numpy as np >>> np.arange(0.0, 1.0, 0.1) array([ 0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
但是,注意潜在的浮点舍入错误至关重要,这可能会导致不正确的结果,如下所示:
>>> numpy.arange(1, 1.3, 0.1) array([1. , 1.1, 1.2, 1.3])
以上是如何在 Python 中生成小数步长的序列?的详细内容。更多信息请关注PHP中文网其他相关文章!