周一啦,工作使我快樂使我開心,這一期的Python學(xué)習(xí)教程想跟大家講一下Numpy系列,創(chuàng)建數(shù)組的三大絕招,,絕招哈,都傳授給你們啦,! 創(chuàng)建Numpy數(shù)組的三大絕招 1.使用函數(shù)np.array 2.使用便捷的內(nèi)置函數(shù) 3.使用隨機(jī)庫函數(shù) Numpy庫的核心對(duì)象便是ndarray數(shù)組,,又稱n維數(shù)組。要知道,,基礎(chǔ)數(shù)據(jù)的統(tǒng)計(jì),、變換等運(yùn)算都是基于數(shù)組對(duì)象的,所以對(duì)于ndarray的掌握至關(guān)重要,。而所謂工欲善其事必先利其器,,工具我們暫時(shí)是搞明白了,至于怎么打造出來,,這塊得好好講講了,。這篇Python學(xué)習(xí)教程的主要目的是幫助同學(xué)們更好地了解創(chuàng)建Numpy數(shù)組的三大絕招。 1.使用np.array()創(chuàng)建看過我Python學(xué)習(xí)教程的童鞋們,,在“人生苦短,,我用Python”的取經(jīng)之路上,,想必都知道list列表,這是Python內(nèi)置的一種基本數(shù)據(jù)類型,。而ndarray數(shù)組便可通過對(duì)list的轉(zhuǎn)換來進(jìn)行創(chuàng)建,,只要簡(jiǎn)單地將Python列表傳遞給數(shù)組函數(shù)np.array()即可。 a = np.array([1,2,3])a array([1, 2, 3]) 當(dāng)然,,上例得到的只是一維數(shù)組,,想要多維的,請(qǐng)將一系列的列表傳遞給數(shù)組函數(shù),,但要保證()內(nèi)部的數(shù)據(jù)類型是list,,這點(diǎn)很重要。 b = np.array([[1, 2, 3], [4, 5, 6]])b array([[1, 2, 3],[4, 5, 6]]) 就這樣,,我們依次創(chuàng)建了一維數(shù)組a與二維數(shù)組b,,創(chuàng)建ndarray數(shù)組的第一招是不是很簡(jiǎn)單呢,你get到了嗎,? 2.使用內(nèi)置函數(shù)便捷創(chuàng)建在Numpy庫中,np.array()給我們提供了創(chuàng)建數(shù)組的簡(jiǎn)單方法,,讓我們卯足了盡頭,,準(zhǔn)備開始揭開Numpy的面紗,大干一場(chǎng),。但突然,,一盆冷水潑身上,關(guān)鍵問題來了,,如果我們想創(chuàng)建由0到19的數(shù)字序列數(shù)組,,那是不是得一個(gè)數(shù)字一個(gè)數(shù)字地敲,創(chuàng)建0到100的呢,?創(chuàng)建多維的呢,?不敢想象!??! 其實(shí),Numpy庫很人性化地為我們提供了非常多的內(nèi)置函數(shù),,用于便捷地創(chuàng)建數(shù)組,,下面我們來看一看 1.np.arange(),創(chuàng)建遞增序列 #創(chuàng)建一個(gè)值范圍為0到19的數(shù)組c = np.arange(20)#arange搭配reshape,,創(chuàng)建從0-19的4行5列數(shù)組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()的結(jié)構(gòu),,np.arange(x)為左閉右開結(jié)構(gòu),數(shù)據(jù)從0開始,,到x-1結(jié)束,,生成規(guī)則遞增序列,,同時(shí)也可以指定arange的3s參數(shù),start,、stop與step,。 2.np.ones(shape=,dtype=),創(chuàng)建全為1的數(shù)組矩陣 e = np.ones((3,4))e array([[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]]) 注意:shape為元組格式,,dtype可以決定數(shù)據(jù)類型 3.np.zeros(shape=,dtype=),,創(chuàng)建全為0的數(shù)組 f = np.zeros((2,4)) array([[0., 0., 0., 0.], [0., 0., 0., 0.]]) 4.np.eye(M),創(chuàng)建對(duì)角線為1,其余為0 的數(shù)組 g = np.eye(3) array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]) 5.np.full(shape=,fill_value=),,任意填充數(shù)字 h = np.full((2,2), 3) array([[3, 3], [3, 3]]) np.linspace(start,stop,num),線性區(qū)間等分,,linspace是左閉右閉 #將0-10區(qū)間等分4份i = np.linspace(0, 10, num=4)i array([ 0., 3.333, 6.666, 10.]) 以上的6個(gè)簡(jiǎn)單操作,是不是非常貼心呢,,狂敲666有木有,,下面豁出去了,再為各位童鞋們們獻(xiàn)上最后一招大絕招,! 3.使用隨機(jī)庫函數(shù)創(chuàng)建Numpy也提供random模塊,,來幫助我們?nèi)?chuàng)建隨機(jī)性的序列,從此生成一組隨機(jī)數(shù)就變得so easy,,下面我們就來瞧一瞧,。 1.np.random.random(size),生成0-1的隨機(jī)數(shù),左閉右開,,size表示個(gè)數(shù),,可以是一維、二維或者三維 np.random.random((2,2)) array([[0.31153256 , 0.128392402], [0.023428592, 0.324950205]]) 可以看出,,生成的數(shù)據(jù)是集中在0-1的2行2列隨機(jī)數(shù)據(jù),。 2.np.random.randint(low=,hight=,size=),生成整數(shù)類型的隨機(jī)數(shù),low最小值,,hight最大值,,size個(gè)數(shù) np.random.int(0,10,3) array([1 , 5 , 7 ]) 3.np.random.randn(size),生成標(biāo)準(zhǔn)正態(tài)分布,size個(gè)數(shù) 代碼自己挖掘,,敲起來試試看 4.np.random.normal(loc,scale,size),,生成非標(biāo)準(zhǔn)正態(tài)分布 代碼自己挖掘,敲起來試試看呀 對(duì)于隨機(jī)數(shù)的創(chuàng)建,,姑且掌握這4個(gè)技巧,,所謂來日方長(zhǎng),后面如果接觸到的未提及的方法,,再來詳細(xì)聊聊,。更多的Python學(xué)習(xí)教程也會(huì)繼續(xù)為大家更新哦! |
|