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

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

Susan Sarandon
發布: 2024-12-11 08:39:13
原創
766 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板