第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 NumPy 入門教程 NumPy 入門教程 Numpy 數(shù)組創(chuàng)建方法

Numpy 數(shù)組創(chuàng)建方法

在數(shù)組的屬性和方法這一小節(jié)中我們學(xué)習(xí)到了如何查看數(shù)組的大小、維數(shù)(秩)、元素的數(shù)據(jù)類型、每個(gè)元素的大小等等。這一小節(jié)將詳述如何從數(shù)值范圍創(chuàng)建特殊數(shù)組,比如指定間隔的等差數(shù)列型數(shù)組、等比數(shù)列型數(shù)組等。

1. 創(chuàng)建等間隔序列數(shù)組

通常定義一個(gè)等間隔序列數(shù)組(即等差數(shù)組),需要指定某些具體要素,例如起始值、終止值、步長、樣本數(shù)量等。主要功能類似于 Python 內(nèi)置的 range 函數(shù),但是返回的是一個(gè) ndarray。

1.1 numpy.arange 函數(shù)

arange 函數(shù)可以通過指定起始值、終止值、步長的方式,來創(chuàng)建一個(gè)我們需要的數(shù)組。其函數(shù)調(diào)用方法如下:

numpy.arange(start, stop, step=1, dtype=None)

構(gòu)造函數(shù)接受的參數(shù)詳解如下:

參數(shù) 描述
start 待創(chuàng)建數(shù)組序列的起始值,默認(rèn)為0
stop 終止值。和range類似,創(chuàng)建的序列結(jié)果不包含終止值。
step 步長,默認(rèn)為1
dtype 返回ndarray的數(shù)據(jù)類型,如果沒有提供,則自動(dòng)根據(jù)輸入?yún)?shù)的類型進(jìn)行推測

案例

創(chuàng)建一個(gè)長度為 10 的一維整數(shù)類型的數(shù)組。

np.arange(0,100,10, dtype=np.int32)
Out: 
    array([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])

可以看到數(shù)組并不包含終止值,是 [start, stop) 的區(qū)間。

在某些情況下,可以結(jié)合 reshape 函數(shù)使用,生成具有等差數(shù)列特性的數(shù)組矩陣:

np.arange(0,100,5, dtype=np.float16).reshape(4,5)
Out: 
    array([[ 0.,  5., 10., 15., 20.],
           [25., 30., 35., 40., 45.],
           [50., 55., 60., 65., 70.],
           [75., 80., 85., 90., 95.]], dtype=float16)

1.2 numpy.linspace 函數(shù)

linspace 函數(shù)的功能是生成在某一確定區(qū)間內(nèi)的一維數(shù)組,但是功能相較于 arange 更加強(qiáng)大。其函數(shù)調(diào)用方法如下:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

構(gòu)造函數(shù)接受的參數(shù)詳解如下:

參數(shù) 描述
start 待創(chuàng)建數(shù)組序列的起始值,默認(rèn)為0
stop 終止值,如果endpoint為True,該值包含于數(shù)列中
num 要生成的等步長的樣本數(shù)量,默認(rèn)為50
endpoint 該值為 True時(shí),數(shù)列中中包含stop值,反之不包含,默認(rèn)是True。
retstep 若為 True ,函數(shù)會(huì)同時(shí)返回步長
dtype 返回ndarray的數(shù)據(jù)類型,如果沒有提供,則自動(dòng)根據(jù)輸入?yún)?shù)的類型進(jìn)行推測

案例

創(chuàng)建一個(gè)長度為 10 的一維整數(shù)類型的數(shù)組。

np.linspace(0, 10, endpoint=False, num=10, dtype=np.int32)
Out: 
    array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

觀察發(fā)現(xiàn):endpoint 設(shè)置為 False,生成的數(shù)組不包含終止值 10。

當(dāng)然,想達(dá)到同樣的效果,還可以這樣寫:

np.linspace(0, 9, endpoint=True, num=10, dtype=np.int32)
Out: 
    array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

當(dāng)指定 retstep 為 True 時(shí),linspace 函數(shù)會(huì)返回一個(gè)由數(shù)組和步長組成的、長度為2的元祖:

np.linspace(0, 9, endpoint=True, num=10, retstep=True, dtype=np.int32)
Out: 
    (array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), 1.0)

2. 創(chuàng)建等比序列數(shù)組

類似的,創(chuàng)建等比序列數(shù)組的過程,也是由起始值、終止值、樣本數(shù)量等元素統(tǒng)一定義的,但是在使用具體函數(shù)的時(shí)候,有些許不同。

2.1 numpy.logspace 函數(shù)

logspace 函數(shù)是通過指定基數(shù)、基數(shù)的起始指數(shù)、基數(shù)的終止指數(shù)、樣本數(shù)量等元素,來定義一個(gè)等比數(shù)列。其函數(shù)調(diào)用方法如下:

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

構(gòu)造函數(shù)接受的參數(shù)詳解如下:

參數(shù) 描述
start 數(shù)列的起始值,表示以base為底的冪的指數(shù)
stop 數(shù)列的終止值,表示以base為底的冪的指數(shù);如果endpoint為True,冪包含于數(shù)列中
num 要生成的樣本數(shù)量,默認(rèn)為50
endpoint 該值為 True時(shí),數(shù)列中中包含stop值,反之不包含,默認(rèn)是True
base 基數(shù)
dtype 返回ndarray的數(shù)據(jù)類型,如果沒有提供,則自動(dòng)根據(jù)輸入?yún)?shù)的類型進(jìn)行推測

案例

當(dāng)定義指定公比的等比數(shù)列時(shí),logspace 函數(shù)非常方便。例如,定義一個(gè)2(2的1次方)、4(2的2次方)、……、1024(2的10次方),長度為10的一維等比數(shù)組:

np.logspace(1, 10, num=10, endpoint=True, base=2, dtype=np.int32)
Out: 
    array([   2,    4,    8,   16,   32,   64,  128,  256,  512, 1024])

通過對該案例的研究,可以看出:

通過 logspace 創(chuàng)建的等比數(shù)列,起始值是以 base=2 為底、start=1 為指數(shù)的冪,終止值是以 base=2 為底、stop=10 為指數(shù)的冪,并指定樣本數(shù)量生成的。生成的等比數(shù)列的指數(shù)滿足等差數(shù)列分布的形式,因此logspace 函數(shù)產(chǎn)生的數(shù)列又稱為對數(shù)等差數(shù)列。

2.2 numpy.geomspace函數(shù)

geomspace 通過指定起始值、終止值、樣本數(shù)量,來返回相對應(yīng)的等比數(shù)組。

和 logspace 最大的不同在于,geomspace 并不需要事先指定 base(基數(shù)),其函數(shù)調(diào)用方法如下:

numpy.geomspace(start, stop, num=50, endpoint=True, dtype=None)

構(gòu)造函數(shù)接受的參數(shù)詳解如下:

參數(shù) 描述
start 待創(chuàng)建數(shù)組序列的起始值
stop 終止值,如果endpoint為True,該值包含于數(shù)列中
num 要生成的樣本數(shù)量,默認(rèn)為50
endpoint 該值為 True時(shí),數(shù)列中中包含stop值,反之不包含,默認(rèn)是True。
dtype 返回ndarray的數(shù)據(jù)類型,如果沒有提供,則自動(dòng)根據(jù)輸入?yún)?shù)的類型進(jìn)行推測

案例

同樣的,生成 1-1024 長度為 10 的等比數(shù)列,可以有如下語句:

np.geomspace(2, 1024, 10, endpoint=True, dtype=np.int32)
Out: 
    array([   2,    4,    7,   16,   32,   64,  127,  256,  512, 1024])

geomspace 函數(shù)的語法相對簡單,只需要指定起始值、終止值、樣本數(shù)量,即可確定一個(gè)等比數(shù)列。

3. 小結(jié)

本節(jié)主要介紹了等差和等比數(shù)組的創(chuàng)建方法,和 Python 內(nèi)置的 range 函數(shù)不同的是,在 numpy 中,你可以靈活地指定 endpoint 參數(shù)來決定終止值是否包含在數(shù)列區(qū)間內(nèi)。特別的,創(chuàng)建的一維數(shù)組可以非常方便的用 reshape 方法,轉(zhuǎn)化成多維矩陣。