亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python?numpy?中l(wèi)inspace函數(shù)示例詳解

 更新時間:2023年12月22日 11:06:52   作者:碼農(nóng)研究僧  
這篇文章主要介紹了python?numpy?中l(wèi)inspace函數(shù),本文我們通過示例學習了linspace函數(shù),如果你熟悉NumPy,一定也注意到還有np.arange函數(shù),兩者最大差異是,linspace能夠精確控制終止值終值,而arange能夠更直接地控制序列中值之間的增量,需要的朋友可以參考下

python numpy 中l(wèi)inspace函數(shù)

numpy提供linspace函數(shù)(有時也稱為np.linspace)是python中創(chuàng)建數(shù)值序列工具。與Numpy arange函數(shù)類似,生成結(jié)構(gòu)與Numpy 數(shù)組類似的均勻分布的數(shù)值序列。兩者雖有些差異,但大多數(shù)人更愿意使用linspace函數(shù),其很好理解,但我們需要去學習如何使用。

本文我們學習linspace函數(shù)及其他語法,并通過示例解釋具體參數(shù)。最后也順便提及np.linspace 和 np.arange之間的差異。

1. 快速了解

通過定義均勻間隔創(chuàng)建數(shù)值序列。其實,需要指定間隔起始點、終止端,以及指定分隔值總數(shù)(包括起始點和終止點);最終函數(shù)返回間隔類均勻分布的數(shù)值序列。請看示例:

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

代碼生成 NumPy 數(shù)組 (ndarray 對象),結(jié)果如下:array([ 0., 25., 50., 75., 100.])
如圖:

在這里插入圖片描述

讓我們解釋下,Numpy linspace函數(shù)依照定義間隔生成均勻分布的數(shù)值。我們使用start和stop參數(shù)指定間隔,這里我們設定為0和100,同時指定在范圍內(nèi)生產(chǎn)5個觀測值,因此函數(shù)生成5個均勻分布的元素。第一個是0,最后一個100,其他三個分布在0和100之間。

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

2. linspace函數(shù)語法

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

在這里插入圖片描述

圖2

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

在這里插入圖片描述

start
start 參數(shù)數(shù)值范圍的起始點。如果設置為0,則結(jié)果的第一個數(shù)為0.該參數(shù)必須提供。

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

num (可選)
num 參數(shù)控制結(jié)果中共有多少個元素。如果num=5,則輸出數(shù)組個數(shù)為5.該參數(shù)可選,缺省為50.

endpoint (可選)
endpoint 參數(shù)決定終止值(stop參數(shù)指定)是否被包含在結(jié)果數(shù)組中。如果 endpoint = True, 結(jié)果中包括終止值,反之不包括。缺省為True。

dtype (可選)
和其他的 NumPy 一樣, np.linspace中的dtype 參數(shù)決定輸出數(shù)組的數(shù)據(jù)類型。如果不指定,python基于其他參數(shù)值推斷數(shù)據(jù)類型。如果需要可以顯示指定,參數(shù)值為NumPy 和 Python支持的任意數(shù)據(jù)類型。

我們并不需要每次都使用所有參數(shù),如果缺省值可以滿足我們需求。一般start, stop, num 比 endpoint 和 dtype常用。

位置參數(shù) vs 命名參數(shù)

實際調(diào)用時無需顯示指定參數(shù)名稱,可以通過參數(shù)位置直接匹配:

np.linspace(0, 100, 5)

上面代碼和前面示例的功能一樣:np.linspace(start = 0, stop = 100, num = 5) 。
前者使用位置匹配,后者使用名稱匹配。位置匹配讓代碼簡捷,名稱匹配使代碼更可讀,實際應用中我們鼓勵使用名稱匹配調(diào)用函數(shù)。

3. 示例

下面通過示例學習每個參數(shù)含義。

3.1 從0到1,間隔為0.1的數(shù)值序列

np.linspace(start = 0, stop = 1, num = 11)

輸出結(jié)果為:

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的數(shù)值序列

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

輸出結(jié)果為:

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

該示例和前面一樣,只是實際應用很常用。

3.3 使用 endpoint 參數(shù)

前文提到,endpoint 參數(shù)決定終止值是否被包含在結(jié)果數(shù)組中。缺省為True,即包括在結(jié)果中,反之不包括,請看示例:

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

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

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

個人認為該參數(shù)不夠直接,平時一般不使用。

3.4 手動指定數(shù)據(jù)類型

默認linspace根據(jù)其他參數(shù)類型推斷數(shù)據(jù)類型,很多時候,輸出結(jié)果為float類型。如果需要指定數(shù)據(jù)類型,可以通過dtype設置。該參數(shù)很直接,除了linspace其他函數(shù)也一樣,如:np.array,np.arange等。示例:

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

這里dtype為int,結(jié)果為int類型,而不是float類型。

4. 總結(jié)

本文我們通過示例學習了linspace函數(shù)。如果你熟悉NumPy,一定也注意到還有np.arange函數(shù)。兩者最大差異是,linspace能夠精確控制終止值終值,而arange能夠更直接地控制序列中值之間的增量。

Python Numpy 關于 linspace()函數(shù) 使用詳解(全)

前言

用plt畫圖的時候,偶爾會看到這個函數(shù)的出現(xiàn),索性直接深入源碼實戰(zhàn)進行復現(xiàn)

主要功能:在線性區(qū)域中生成等間距的序列,原先在Numpy中可以用numpy.arange(),但對于浮點數(shù)會有精度丟失,因此 linspace()對于浮點數(shù)比較友好。適當?shù)膮?shù),兩者都可選擇。

1. 函數(shù)講解

具體源碼:numpy.linspace(start, end, num=num_points,endpoint=False,retstep=True,axis=0,dtype=int)

參數(shù)講解:

  • 對應的序列在【start,end】,共有num_points個元素
  • endpoint默認為True。如果設置為False,對應的序列在【start,end),通俗的說不包括最后一個元素,同樣共有num_points個元素
  • retstep默認為False。如果設置為True,則返回的序列結(jié)果為一個元組,對應的序列在【start,end】
  • axis設置軸來存儲,只可數(shù)組類型才可編譯。默認為0,在開始處插入新軸。為-1,為序列末尾軸。
  • dtype默認類型為int,很多時候輸出為float類型。

2. 實戰(zhàn)講解

該函數(shù)最基本的使用如下:

import numpy as np
import matplotlib.pyplot as plt
x1 = np.linspace(-5, 5, 5)
# 讓y直接為0
y = np.zeros(5)
# 畫圖,具體用*號表示
plt.plot(x1, y, '*')
# 設置當前軸的y限制
plt.ylim([-0.5, 0.5])
plt.show()
# 輸出 [-5.  -2.5  0.   2.5  5. ]
print(x1)
# 輸出的長度為 5 
print(len(x1))

截圖如下:

在這里插入圖片描述

如果設置endpoint參數(shù),對應不保存最后一個關鍵字,具體代碼如下:

import numpy as np
import matplotlib.pyplot as plt
x1 = np.linspace(-5, 5, 5,endpoint=False)
y = np.zeros(5)
plt.plot(x1, y, '*')
plt.ylim([-0.5, 0.5])
plt.show()
## 注意其中的區(qū)別 ## 
# 輸出 [-5. -3. -1.  1.  3.]
print(x1)
# 輸出的長度為 5 
print(len(x1))

截圖如下:

在這里插入圖片描述

如果設置retstep參數(shù),對應輸出的結(jié)果為元組類型
(注意其中的代碼區(qū)別)

import numpy as np
import matplotlib.pyplot as plt
x1 = np.linspace(-5, 5, 5,retstep=True)
y = np.zeros(5)
# 代碼無法使用,因為是元組類型,無法畫圖 
# plt.plot(x1, y, '*')
# plt.ylim([-0.5, 0.5])
# plt.show()
# ## 注意其中的區(qū)別 ## 
# 輸出(array([-5. , -2.5,  0. ,  2.5,  5. ]), 2.5)
print(x1)
# 輸出的長度為 2
print(len(x1))

如果設置axis參數(shù),對應的代碼區(qū)別如下:

import numpy as np
import matplotlib.pyplot as plt
x1 = np.array([[1, 2], [3, 4]])
x2 = np.array([[5, 6], [7, 8]])
s = np.linspace(x1,x2,3, axis=1)
print(s)
# 輸出的長度為 2
print(len(s))

axis=1輸出結(jié)果為:

[[[1. 2.]
[3. 4.]
[5. 6.]]

[[3. 4.]
[5. 6.]
[7. 8.]]]

axis=0輸出結(jié)果為:

[[[1. 2.]
[3. 4.]]

[[3. 4.]
[5. 6.]]

[[5. 6.]
[7. 8.]]]

到此這篇關于python numpy 中l(wèi)inspace函數(shù)的文章就介紹到這了,更多相關python linspace函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python的Flask框架開發(fā)驗證碼登錄的實現(xiàn)

    Python的Flask框架開發(fā)驗證碼登錄的實現(xiàn)

    在本文我們介紹了如何使用Python的Flask框架開發(fā)一個簡單的驗證碼登錄功能,將涵蓋生成驗證碼、處理用戶輸入、驗證驗證碼以及實現(xiàn)安全的用戶認證等方面,感興趣的可以了解一下
    2023-11-11
  • Python?文件操作方法總結(jié)

    Python?文件操作方法總結(jié)

    這篇文章主要介紹了Python?文件操作方法總結(jié),文章基于python的基礎展開Python?文件操作方法,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Python入門教程(三十)Python的PIP

    Python入門教程(三十)Python的PIP

    這篇文章主要介紹了Python入門教程(三十)Python的PIP,PIP是Python 包或模塊的包管理器,本章帶你們看一下如何使用PIP命令,需要的朋友可以參考下
    2023-04-04
  • 詳解python讀寫json文件

    詳解python讀寫json文件

    這篇文章主要為大家介紹了python讀寫json文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Django配置Redis使用的方法步驟

    Django配置Redis使用的方法步驟

    本文主要介紹了Django配置Redis使用的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • python實現(xiàn)合并兩個數(shù)組的方法

    python實現(xiàn)合并兩個數(shù)組的方法

    這篇文章主要介紹了python實現(xiàn)合并兩個數(shù)組的方法,實例分析了兩種常用的合并數(shù)組的技巧,非常簡單實用,需要的朋友可以參考下
    2015-05-05
  • 分析Python編程時利用wxPython來支持多線程的方法

    分析Python編程時利用wxPython來支持多線程的方法

    這篇文章主要介紹了Python編程時利用wxPython來支持多線程的方法,本文主要以開發(fā)GUI程序時做線程通訊作為一個示例來講解,需要的朋友可以參考下
    2015-04-04
  • 淺談python中的正則表達式(re模塊)

    淺談python中的正則表達式(re模塊)

    本篇文章主要介紹了淺談python中的正則表達式(re模塊),通過內(nèi)嵌集成re模塊,程序媛們可以直接調(diào)用來實現(xiàn)正則匹配,有興趣的可以了解一下
    2017-10-10
  • Python之parser.add_argument解讀

    Python之parser.add_argument解讀

    這篇文章主要介紹了Python之parser.add_argument解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 使用Tkinter制作信息提示框

    使用Tkinter制作信息提示框

    這篇文章主要介紹了使用Tkinter制作信息提示框的相關資料,需要的朋友可以參考下
    2020-02-02

最新評論