Numpy懂不懂?
各位看官里面请,欢迎来听慕寒的慕言慕语。上回说到,Numpy有自己的数据结构,还能对数组做相关操作。那么,这一回,慕寒将和各位一起继续探讨一下Numpy对数组的一些操作:连接与分割、修改数组元素,让我们一起打开软件,掏出键盘。。。。。。这一回慕寒将会涉及到本专业的一些专有名词,希望各位看官不要吃惊~在慕寒的专业中呢,有一个重要的分支便是遥感。而在在处理遥感影像时往往需要对多幅遥感影像进行拼接操作,如果将每一幅遥感影像数字化成数组的形式,那么遥感影像的拼接操作就相当于多个数组的连接操作。而这无敌的Numpy库则为使用者提供了一些可用于数组连接的函数,快来瞅瞅。
concatenate
沿某一轴连接数组序列
stack
沿着新的轴加入新数组序列
hstack
水平(列)方向堆叠数组序列
vstack
竖直(行)方向堆叠数组序列
其中最常用的当是“concatenate”函数了,下面慕寒给出这个函数的语法结构还有一些参数的说明。
a1,a2,…
同类型的数组序列
axis
沿着连接的轴,默认为0(竖直连接)
来了来了,慕寒要放出案例了,各位看官有兴趣的话可以拿出键盘一起敲一敲~这里慕寒以两幅遥感影像中的局部数据为例来展示该函数的具体使用,代码如下:连接后的输出就是这个样子的了,如果各位没有不小心敲错了的话,那咱俩是一样的:
说完这数组的连接啊,那咱就来看看这数组的分割。遥感中的影像裁剪就类似于对数组进行分割操作。numpy库中包括三种数组分割函数,一起来瞅瞅他们啥样子。
数组分割函数
split
将数组分割成多个子数组
hsplit
按列分割
vsplit
按行分割
其中最常用的为“split”函数,该函数的语法结构及参数说明各位看官可要看好了啊。ary
用于分割的数组
indices_or_sections
如果是数组,即沿该轴切分(左开右闭)如果是整数,即将数组按该数均分axis
默认为0,水平切分;为1时,竖直切分
键盘敲起来~:
猜猜看,咱俩输出一不一样:
说到这里,有点看官就想问了:慕寒你说,我要是看这数组不爽,我能不能把他们改了啊?慕寒要说的是:我还真没见过如此猖狂之人,不过还就巧了,还真有,无敌的Numpy库真就给了我们“篡改”的机会~这不,慕寒又要说一下自己的专业了。在俺们专业里面,有一个领域叫做地统计分析,而这一领域呢,往往需要对栅格数据进行修改等操作,就比如说计算各栅格数值在总栅格数据中的权重,即将栅格数据中各栅格的数值除以栅格数据的总和。(至于啥玩意儿是栅格呢,简单的说就是把你所看到的范围给它分为好多个子区域,每个区域都会有自己的一些信息。)那如果是从Numpy角度来分析呢,这操作那不就是对数组元素进行修改嘛。代码敲起来!!!
END
码字不易
多多关注
点分享
点收藏
点点赞
点在看
评论