Python學習教程:Numpy系列,建立陣列的三大絕招

千鋒Python唐小強發表於2019-07-29

週一啦,工作使我快樂使我開心,這一期的 Python學習教程 想跟大家講一下Numpy系列,建立陣列的三大絕招,絕招哈,都傳授給你們啦!

建立Numpy陣列的三大絕招

1.使用函式np.array

2.使用便捷的內建函式

3.使用隨機庫函式

Numpy庫的核心物件便是ndarray陣列,又稱n維陣列。要知道,基礎資料的統計、變換等運算都是基於陣列物件的,所以對於ndarray的掌握至關重要。而所謂工欲善其事必先利其器,工具我們暫時是搞明白了,至於怎麼打造出來,這塊得好好講講了。這篇 Python學習教程 的主要目的是幫助同學們更好地瞭解建立Numpy陣列的三大絕招。

1.使用np.array()建立

看過我 Python學習教程 的童鞋們,在“人生苦短,我用Python”的取經之路上,想必都知道list列表,這是Python內建的一種基本資料型別。而ndarray陣列便可透過對list的轉換來進行建立,只要簡單地將Python列表傳遞給陣列函式np.array()即可。

a = np.array([1,2,3])a

array([1, 2, 3])

當然,上例得到的只是一維陣列,想要多維的,請將一系列的列表傳遞給陣列函式,但要保證()內部的資料型別是list,這點很重要。

b = np.array([[1, 2, 3], [4, 5, 6]])b

array([[1, 2, 3],[4, 5, 6]])

就這樣,我們依次建立了一維陣列a與二維陣列b,建立ndarray陣列的第一招是不是很簡單呢,你get到了嗎?

2.使用內建函式便捷建立

在Numpy庫中,np.array()給我們提供了建立陣列的簡單方法,讓我們卯足了盡頭,準備開始揭開Numpy的面紗,大幹一場。但突然,一盆冷水潑身上,關鍵問題來了,如果我們想建立由0到19的數字序列陣列,那是不是得一個數字一個數字地敲,建立0到100的呢?建立多維的呢?不敢想象!!!

其實,Numpy庫很人性化地為我們提供了非常多的內建函式,用於便捷地建立陣列,下面我們來看一看

1.np.arange(),建立遞增序列

#建立一個值範圍為0到19的陣列c = np.arange(20)#arange搭配reshape,建立從0-19的4行5列陣列d = np.arange(20).reshape(4,5)d

array([[ 0, 1, 2, 3, 4],  [ 5, 6, 7, 8, 9],  [10, 11, 12, 13, 14],  [15, 16, 17, 18, 19]])

注意:這裡要掌握arange()的結構,np.arange(x)為左閉右開結構,資料從0開始,到x-1結束,生成規則遞增序列,同時也可以指定arange的3s引數,start、stop與step。

2.np.ones(shape=,dtype=),建立全為1的陣列矩陣

e = np.ones((3,4))e

array([[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]])

注意:shape為元組格式,dtype可以決定資料型別

3.np.zeros(shape=,dtype=),建立全為0的陣列

f = np.zeros((2,4))

array([[0., 0., 0., 0.], [0., 0., 0., 0.]])

4.np.eye(M),建立對角線為1,其餘為0 的陣列

g = np.eye(3)

array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]])

5.np.full(shape=,fill_value=),任意填充數字

h = np.full((2,2), 3)

array([[3, 3], [3, 3]])

np.linspace(start,stop,num),線性區間等分,linspace是左閉右閉

#將0-10區間等分4份i = np.linspace(0, 10, num=4)i

array([ 0., 3.333, 6.666, 10.])

以上的6個簡單操作,是不是非常貼心呢,狂敲666有木有,下面豁出去了,再為各位童鞋們們獻上最後一招大絕招!

3.使用隨機庫函式建立

Numpy也提供random模組,來幫助我們去建立隨機性的序列,從此生成一組隨機數就變得so easy,下面我們就來瞧一瞧。

1.np.random.random(size),生成0-1的隨機數,左閉右開,size表示個數,可以是一維、二維或者三維

np.random.random((2,2))

array([[0.31153256 , 0.128392402], [0.023428592, 0.324950205]])

可以看出,生成的資料是集中在0-1的2行2列隨機資料。

2.np.random.randint(low=,hight=,size=),生成整數型別的隨機數,low最小值,hight最大值,size個數

np.random.int(0,10,3)

array([1 , 5 , 7 ])

3.np.random.randn(size),生成標準正態分佈,size個數

程式碼自己挖掘,敲起來試試看

4.np.random.normal(loc,scale,size),生成非標準正態分佈

程式碼自己挖掘,敲起來試試看呀

對於隨機數的建立,姑且掌握這4個技巧,所謂來日方長,後面如果接觸到的未提及的方法,再來詳細聊聊。更多的 Python學習教程 也會繼續為大家更新哦!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2652027/,如需轉載,請註明出處,否則將追究法律責任。

相關文章