Numpy懂不懂?

各位看官里面請(qǐng),歡迎來(lái)聽(tīng)慕寒的慕言慕語(yǔ)。上回說(shuō)到,Numpy有自己的數(shù)據(jù)結(jié)構(gòu),還能對(duì)數(shù)組做相關(guān)操作。那么,這一回,慕寒將和各位一起繼續(xù)探討一下Numpy對(duì)數(shù)組的一些操作:連接與分割、修改數(shù)組元素,讓我們一起打開(kāi)軟件,掏出鍵盤。。。。。。
這一回慕寒將會(huì)涉及到本專業(yè)的一些專有名詞,希望各位看官不要吃驚~在慕寒的專業(yè)中呢,有一個(gè)重要的分支便是遙感。而在在處理遙感影像時(shí)往往需要對(duì)多幅遙感影像進(jìn)行拼接操作,如果將每一幅遙感影像數(shù)字化成數(shù)組的形式,那么遙感影像的拼接操作就相當(dāng)于多個(gè)數(shù)組的連接操作。而這無(wú)敵的Numpy庫(kù)則為使用者提供了一些可用于數(shù)組連接的函數(shù),快來(lái)瞅瞅。
concatenate
沿某一軸連接數(shù)組序列
stack
沿著新的軸加入新數(shù)組序列
hstack
水平(列)方向堆疊數(shù)組序列
vstack
豎直(行)方向堆疊數(shù)組序列
其中最常用的當(dāng)是“concatenate”函數(shù)了,下面慕寒給出這個(gè)函數(shù)的語(yǔ)法結(jié)構(gòu)還有一些參數(shù)的說(shuō)明。

a1,a2,…
同類型的數(shù)組序列
axis
沿著連接的軸,默認(rèn)為0(豎直連接)
來(lái)了來(lái)了,慕寒要放出案例了,各位看官有興趣的話可以拿出鍵盤一起敲一敲~這里慕寒以兩幅遙感影像中的局部數(shù)據(jù)為例來(lái)展示該函數(shù)的具體使用,代碼如下:

連接后的輸出就是這個(gè)樣子的了,如果各位沒(méi)有不小心敲錯(cuò)了的話,那咱倆是一樣的:



說(shuō)完這數(shù)組的連接啊,那咱就來(lái)看看這數(shù)組的分割。遙感中的影像裁剪就類似于對(duì)數(shù)組進(jìn)行分割操作。numpy庫(kù)中包括三種數(shù)組分割函數(shù),一起來(lái)瞅瞅他們啥樣子。

數(shù)組分割函數(shù)
split
將數(shù)組分割成多個(gè)子數(shù)組
hsplit
按列分割
vsplit
按行分割
其中最常用的為“split”函數(shù),該函數(shù)的語(yǔ)法結(jié)構(gòu)及參數(shù)說(shuō)明各位看官可要看好了啊。
ary
用于分割的數(shù)組
indices_or_sections
如果是數(shù)組,即沿該軸切分(左開(kāi)右閉)如果是整數(shù),即將數(shù)組按該數(shù)均分axis
默認(rèn)為0,水平切分;為1時(shí),豎直切分
鍵盤敲起來(lái)~:

猜猜看,咱倆輸出一不一樣:



說(shuō)到這里,有點(diǎn)看官就想問(wèn)了:慕寒你說(shuō),我要是看這數(shù)組不爽,我能不能把他們改了???慕寒要說(shuō)的是:我還真沒(méi)見(jiàn)過(guò)如此猖狂之人,不過(guò)還就巧了,還真有,無(wú)敵的Numpy庫(kù)真就給了我們“篡改”的機(jī)會(huì)~這不,慕寒又要說(shuō)一下自己的專業(yè)了。在俺們專業(yè)里面,有一個(gè)領(lǐng)域叫做地統(tǒng)計(jì)分析,而這一領(lǐng)域呢,往往需要對(duì)柵格數(shù)據(jù)進(jìn)行修改等操作,就比如說(shuō)計(jì)算各柵格數(shù)值在總柵格數(shù)據(jù)中的權(quán)重,即將柵格數(shù)據(jù)中各柵格的數(shù)值除以柵格數(shù)據(jù)的總和。(至于啥玩意兒是柵格呢,簡(jiǎn)單的說(shuō)就是把你所看到的范圍給它分為好多個(gè)子區(qū)域,每個(gè)區(qū)域都會(huì)有自己的一些信息。)那如果是從Numpy角度來(lái)分析呢,這操作那不就是對(duì)數(shù)組元素進(jìn)行修改嘛。代碼敲起來(lái)!!!




END


碼字不易
多多關(guān)注

點(diǎn)分享

點(diǎn)收藏

點(diǎn)點(diǎn)贊

點(diǎn)在看
