在 Range() 中谨慎使用小数步长值
Python 中的 range() 函数通常用于迭代一系列数字。但是,当尝试使用十进制步长值(例如 0.1)时,您可能会遇到错误,指示步长参数不能为零。
避免直接使用十进制步长值
强烈建议不要直接在 range() 中使用十进制步长值。浮点舍入错误可能会导致不正确的结果,特别是在使用小步长值时。相反,建议用所需的点数来表示迭代间隔。
使用 NumPy 的 linspace() 函数
NumPy 库提供了 linspace( ) 函数,它允许您指定多个点和范围的端点。通过利用 linspace(),您可以实现以下目标:
import numpy as np # Get 11 equally spaced points between 0 and 1, including both endpoints np.linspace(0, 1, 11) # Get 10 equally spaced points between 0 and 1, excluding the right endpoint np.linspace(0, 1, 10, endpoint=False)
使用 NumPy 的 arange() 函数(谨慎)
如果您确实需要浮动 -点步长值,可以使用NumPy的arange()函数。但是,请注意,浮点舍入错误仍然可能会导致问题,如以下示例所示:
import numpy as np np.arange(0.0, 1.0, 0.1)
在这种情况下,由于舍入错误,arange() 会生成一个长度为 4 的数组预期长度为 3 的数组。因此,如果精度至关重要,那么使用 linspace() 函数非常重要。
以上是为什么我应该在 Python 的 `range()` 中避免小数步长以及如何获得类似的结果?的详细内容。更多信息请关注PHP中文网其他相关文章!