在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中文網其他相關文章!