首頁 >後端開發 >Python教學 >如何在 Python 中產生小數步長的序列?

如何在 Python 中產生小數步長的序列?

Susan Sarandon
Susan Sarandon原創
2024-12-11 08:39:13694瀏覽

How Can I Generate Sequences with Decimal Steps in Python?

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn