溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python中如何導(dǎo)入Numpy庫(kù)

發(fā)布時(shí)間:2021-11-25 14:13:02 來(lái)源:億速云 閱讀:3957 作者:小新 欄目:大數(shù)據(jù)

這篇文章主要介紹Python中如何導(dǎo)入Numpy庫(kù),文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

導(dǎo)入Numpy庫(kù)

為了書(shū)寫(xiě)方便,一般用別名np代替Numpy庫(kù)(如果安裝的是anaconda,Numpy庫(kù)是自帶的)

a = np.array([[1,2,3,4],[5,6,7,8]])
print(a)

常用函數(shù)

導(dǎo)入Numpy庫(kù)之后,可以用Numpy生成數(shù)組。使用array()函數(shù)可以生成一個(gè)數(shù)組,與列表的區(qū)別是沒(méi)有逗號(hào):

a = np.array([[1,2,3,4],[5,6,7,8]])
print(a)

上方的代碼將生成一個(gè)二維數(shù)組,結(jié)果如圖:

如果想改變數(shù)組的維度,獲取4行2列數(shù)組,可以通過(guò)reshape()方法實(shí)現(xiàn):

b = a.reshape((4,-1))
print(b)

Python中如何導(dǎo)入Numpy庫(kù)

reshape()中的參數(shù)(4,-1)表示將數(shù)組轉(zhuǎn)換為4*X的新數(shù)組,X等于數(shù)組a中元素個(gè)數(shù)的1/4。參數(shù)-1是一種“懶人”方法,表示由Python通過(guò)行參數(shù)4自動(dòng)計(jì)算出列數(shù)。

此外,默認(rèn)是按照行優(yōu)先改變數(shù)據(jù)維度,也可以設(shè)置參數(shù)order="F",按照列優(yōu)先改變數(shù)據(jù)維度:

c = a.reshape((4,2), order="F")
print(c)

雖然數(shù)組的維度沒(méi)有改變,但是元素對(duì)應(yīng)的位置已經(jīng)不同了。

想要提取數(shù)組中的某些元素,可以使用切片的方式來(lái)提取。如提取第2行中的5和7:

d = c[1,:]
print(d)

獲取結(jié)果如圖:

Python中如何導(dǎo)入Numpy庫(kù)

當(dāng)然,也可以使用切片的方法修改數(shù)組中相應(yīng)位置的數(shù)值,比如將數(shù)組c中第二列的中間兩個(gè)數(shù)變?yōu)?,可以這樣操作:

c[1:3,1] = 0
print(c)

可以看出,逗號(hào)左邊表示行號(hào),右邊表示列號(hào),由此就能任意截選出我們需要的數(shù)據(jù)。

數(shù)組不僅可以是二維的,也可以是多維的。下面生成一個(gè)三維數(shù)組e:

e = np.array([c,c*2])
print(e)

Python中如何導(dǎo)入Numpy庫(kù)

數(shù)組e是一個(gè)2*2*4的數(shù)組,也就是說(shuō)由2個(gè)2*4的矩陣構(gòu)成。

Numpy中的linspace()函數(shù)可以在指定的兩個(gè)數(shù)之間生成固定數(shù)量的等間距(步長(zhǎng))數(shù)組,如:

f = np.linspace(start=1,stop=12,num=5)
print(f)

上方代碼生成一個(gè)從1到12的5個(gè)等間距的數(shù)組。

如果想以指定的步長(zhǎng)來(lái)生成一個(gè)向量,可以使用arange()方法,如從1開(kāi)始,步長(zhǎng)為3,生成小于等于12的向量:

g = np.arange(1,12,3)
print(g)

結(jié)果:[1 4 7 10]

使用

ones()函數(shù)可以生成全1數(shù)組,如生成一個(gè)2*3的全1數(shù)組:

h = np.ones((2,3))
print(h)

使用zeros()函數(shù)可以生成全0數(shù)組,如生成一個(gè)2*3的全0數(shù)組:

i = np.zeros((2,3))
print(i)

若想生成單位數(shù)組(對(duì)角線(xiàn)為1,其余全是0),可以使用eye()函數(shù),如生成一個(gè)3*3的單位數(shù)組:

j = np.eye(3)
print(j)

Python中如何導(dǎo)入Numpy庫(kù)

當(dāng)然,也可以指定對(duì)角線(xiàn)的元素取值:

k = np.diag(np.arange(1,13,4))
print(k)

使用diag()函數(shù)可以得到一個(gè)數(shù)組的對(duì)角線(xiàn)元素,也可以獲取對(duì)角線(xiàn)的值:

l =np.diag(np.arange(1,26,3).reshape((3,3)))
print(l)

結(jié)果:[ 1 13 25 ]

Numpy中的Random模塊是用來(lái)生成隨機(jī)數(shù)的有力工具,通過(guò)seek()方法能指定隨機(jī)數(shù)種子,保證生成的隨機(jī)數(shù)是可重復(fù)的。如要生成一個(gè)可重復(fù)的3*3隨機(jī)數(shù)組,可以用如下方法:

np.random.seed(2)
m = np.random.randn(3, 3)
print(m)

Python中如何導(dǎo)入Numpy庫(kù)

當(dāng)然,一些常用的統(tǒng)計(jì)函數(shù)也能實(shí)現(xiàn),如均值用mean()方法:

n = np.arange(10)
print(n.mean())

標(biāo)準(zhǔn)差可以使用std()方法:

n = np.arange(10)
print(n.std())

Python中如何導(dǎo)入Numpy庫(kù)

數(shù)組排序可以使用sort()方法,默認(rèn)是每行自動(dòng)排序:

p = np.sort([[2,5,3],[10,6,8]])
print(p)

數(shù)組的百分位數(shù)可以用percentile()函數(shù):

q = np.arange(10)
print(np.percentile(q, 50))

Python中如何導(dǎo)入Numpy庫(kù)

中位數(shù)用median()函數(shù):

q = np.arange(10)
print(np.median(q))

當(dāng)個(gè)數(shù)為偶數(shù)時(shí),中位數(shù)是中間兩個(gè)數(shù)字之和除以2。

Numpy的計(jì)算方法還有很多,大家可以去網(wǎng)上查閱,這里只說(shuō)幾個(gè)常用的。

Numpy主要以數(shù)組為操作對(duì)象,在生成和調(diào)整數(shù)組方面優(yōu)勢(shì)非常明顯。但直接觀察數(shù)組卻不太方便,沒(méi)有序號(hào)、排列不齊等問(wèn)題并不利于我們尋找數(shù)據(jù)規(guī)律,所以我們需要繼續(xù)學(xué)習(xí)。

以上是“Python中如何導(dǎo)入Numpy庫(kù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI