首頁  >  文章  >  後端開發  >  python numpy中linspace函數怎麼使用

python numpy中linspace函數怎麼使用

PHPz
PHPz轉載
2023-05-01 09:34:134164瀏覽

    python numpy 中linspace函數

    numpy提供linspace函數(有時也稱為np.linspace)是python中建立數值序列工具。與Numpy arange函數類似,產生結構與Numpy 陣列類似的均勻分佈的數值序列。兩者雖有些差異,但大多數人更願意使用linspace函數,其很好理解,但我們需要去學習如何使用。

    本文我們學習linspace函數及其他語法,並透過範例解釋具體參數。最後也順便提及np.linspace 和 np.arange的差異。

    1. 快速了解

    透過定義均勻間隔來建立數值序列。其實,需要指定間隔起始點、終止端,以及指定分隔值總數(包括起始點和終止點);最終函數傳回間隔類別均勻分佈的數值序列。請看範例:

    np.linspace(start = 0, stop = 100, num = 5)

    程式碼產生NumPy 陣列(ndarray 物件),結果如下:array([ 0., 25., 50., 75., 100.])
    如圖:

    python numpy中linspace函數怎麼使用

    讓我們解釋下,Numpy linspace函數依照定義間隔產生均勻分佈的數值。我們使用start和stop參數指定間隔,這裡我們設定為0和100,同時指定在範圍內生產5個觀測值,因此函數產生5個均勻分佈的元素。第一個是0,最後一個100,其他三個分佈在0和100之間。

    下面我們詳細看下linspace函數的參數,讓你更清楚地理解其機制。

    2. linspace函數語法

    linspace的語法非常簡單直接。如下圖所示,首先是函數名稱,對應程式碼為 np.linspace (假設你已匯入importe NumPy as np)。

    python numpy中linspace函數怎麼使用

    圖2

    上圖有三個參數,是平常使用最頻繁的三個參數。還有其他的可選參數,下面我們將討論其參數。
    為了理解參數,我們再來看圖示:

    python numpy中linspace函數怎麼使用

    start
    start 參數數值範圍的起始點。如果設定為0,則結果的第一個數為0.該參數必須提供。

    stop
    stop 參數數值範圍的終止點。通常其為結果的最後一個值,但如果修改endpoint = False, 則結果中不包括該值(後面範例會說明)。

    num (可選)
    num 參數控制結果中共有幾個元素。若num=5,則輸出數組個數為5.此參數可選,預設為50.

    endpoint (可選)
    endpoint 參數決定終止值(stop參數指定)是否被包含在結果陣列中。如果 endpoint = True, 結果中包含終止值,反之不包含。預設為True。

    dtype (可選)
    和其他的 NumPy 一樣, np.linspace中的dtype 參數決定輸出陣列的資料型態。如果不指定,python基於其他參數值推斷資料類型。如果需要可以顯示指定,則參數值為NumPy 和 Python支援的任意資料型態。

    我們並不需要每次都使用所有參數,如果預設值可以滿足我們需求。一般start, stop, num 比 endpoint 和 dtype常用。

    位置參數vs 命名參數

    實際呼叫時無需顯示指定參數名稱,可以透過參數位置直接匹配:

    np.linspace(0, 100, 5)

    上面程式碼和前面範例的功能一樣:np.linspace(start = 0, stop = 100, num = 5)
    前者使用位置匹配,後者使用名稱匹配。位置匹配讓程式碼簡捷,名稱匹配使程式碼更可讀,實際應用中我們鼓勵使用名稱匹配呼叫函數。

    3. 範例

    下面透過範例學習每個參數意義。

    3.1 由0到1,間隔0.1的數值序列
    np.linspace(start = 0, stop = 1, num = 11)

    # 輸出結果為:

    array([ 0. ,  0.1,  0.2,  0.3, 0.4,  0.5,  0.6,  0.7,  0.8,  0.9,  1. ])

    當你需要百分比情境時比較有用。

    3.2 由0 到100,間隔10的數值序列
    np.linspace(start = 0, stop = 100, num = 11)

    輸出結果為:

    array([  0.,  10.,  20., 30.,  40.,  50.,  60.,  70.,  80.,  90., 100.])

    此範例與前面一樣,只是實際應用很常用。

    3.3 使用 endpoint 參數

    前文提到,endpoint 參數決定終止值是否包含在結果陣列中。預設為True,即包含在結果中,反之不包括,請看範例:

    np.linspace(start = 1, stop = 5, num = 4, endpoint = False)

    因為endpoint = False,5不在結果中。結果為1到4。

    array([ 1.,  2.,  3.,  4.])

    個人認為此參數不夠直接,平常一般不使用。

    3.4 手动指定数据类型

    默认linspace根据其他参数类型推断数据类型,很多时候,输出结果为float类型。如果需要指定数据类型,可以通过dtype设置。该参数很直接,除了linspace其他函数也一样,如:np.array,np.arange等。示例:

    np.linspace(start = 0, stop = 100, num = 5, dtype = int)

    这里dtype为int,结果为int类型,而不是float类型。

    以上是python numpy中linspace函數怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除