Numpy懂不懂?

慕寒说

共 1303字,需浏览 3分钟

 ·

2021-08-23 06:38

4a6b7afe8c80bc57a32916de872f0b47.webp86b1d97ff04f1df56dd08476d7901baa.webp各位看官里面请,欢迎来听慕寒的慕言慕语。上回说到,Numpy有自己的数据结构,还能对数组做相关操作。那么,这一回,慕寒将和各位一起继续探讨一下Numpy对数组的一些操作:连接与分割、修改数组元素,让我们一起打开软件,掏出键盘。。。。。。38c3550455a55b02260d92ab8f91b44f.webp38c3550455a55b02260d92ab8f91b44f.webp这一回慕寒将会涉及到本专业的一些专有名词,希望各位看官不要吃惊~在慕寒的专业中呢,有一个重要的分支便是遥感。而在在处理遥感影像时往往需要对多幅遥感影像进行拼接操作,如果将每一幅遥感影像数字化成数组的形式,那么遥感影像的拼接操作就相当于多个数组的连接操作。而这无敌的Numpy库则为使用者提供了一些可用于数组连接的函数,快来瞅瞅。

concatenate

沿某一轴连接数组序列

stack

沿着新的轴加入新数组序列

hstack

水平(列)方向堆叠数组序列

vstack

竖直(行)方向堆叠数组序列



其中最常用的当是“concatenate”函数了,下面慕寒给出这个函数的语法结构还有一些参数的说明。


51b2528d08a08e3222cc1d0776824ce4.webp

a1,a2,…

同类型的数组序

axis

沿着连接的轴,默认为0(竖直连接)

来了来了,慕寒要放出案例了,各位看官有兴趣的话可以拿出键盘一起敲一敲~这里慕寒以两幅遥感影像中的局部数据为例来展示该函数的具体使用,代码如下:9d8a089f4842dc07e6b6e1e92851474e.webp

94dcdb6d38090e14f8a65e19edf90720.webp

连接后的输出就是这个样子的了,如果各位没有不小心敲错了的话,那咱俩是一样的:

6a838b530578d8450d0c76e1473d43b5.webp

8f844b47f433cbcad6af90bbf4fe3bf1.webp

431f9063650ab241bbbc135a240b3456.webp


“天下大事,合久必分,分久必合!”咳咳咳,跑题了跑题了。
说完这数组的连接啊,那咱就来看看这数组的分割。遥感中的影像裁剪就类似于对数组进行分割操作。numpy库中包括三种数组分割函数,一起来瞅瞅他们啥样子。431f9063650ab241bbbc135a240b3456.webp

数组分割函数

split

将数组分割成多个子数组

hsplit

按列分割

vsplit

按行分割

de8f6d0ef16b5f2acb55bee50a5b3d6a.webp其中最常用的为“split”函数,该函数的语法结构及参数说明各位看官可要看好了啊。

e8775b595bf164d09c1d46efaf5d72fd.webp

ary

用于分割的数组

indices_or_sections

如果是数组,即沿该轴切分(左开右闭)如果是整数,即将数组按该数均分

axis

默认为0,水平切分;为1时,竖直切分














键盘敲起来~:

9edf0049f1711cd2280b80540875e178.webp




猜猜看,咱俩输出一不一样:

3282632efcf15c891cd0335625bbdc78.webp

6f5be741f8a6564d69d86c93cd7bb4e9.webp





42fbaa52400ad45d552eab2c696491db.webp
455ccb60cf1831db4c012d3c907c2acc.webp说到这里,有点看官就想问了:慕寒你说,我要是看这数组不爽,我能不能把他们改了啊?慕寒要说的是:我还真没见过如此猖狂之人,不过还就巧了,还真有,无敌的Numpy库真就给了我们“篡改”的机会~这不,慕寒又要说一下自己的专业了。在俺们专业里面,有一个领域叫做地统计分析,而这一领域呢,往往需要对栅格数据进行修改等操作,就比如说计算各栅格数值在总栅格数据中的权重,即将栅格数据中各栅格的数值除以栅格数据的总和。(至于啥玩意儿是栅格呢,简单的说就是把你所看到的范围给它分为好多个子区域,每个区域都会有自己的一些信息。)那如果是从Numpy角度来分析呢,这操作那不就是对数组元素进行修改嘛。代码敲起来!
e2972d241c9d49b0db6a5dc98369e677.webp
c14d38d00d6fdc9df5486db7fd8ddd6b.webp

07e6b45e1160c623275f1660301e09c8.webp


输出就是这个样子的,将每个元素的计算结果还是放到对应的位置:


8093b818c4f053b7bfc18f7d706d71d5.webp

23891f7ac0033a77b420ff428797e539.webp

嘎~今天的慕言慕语就到这了,今天俺们又学了一点有关数组的操作,其实这还只是一些皮毛,各位看官可以以此为基础继续到Numpy的大千世界中探索一番。下一回呢,慕寒就会跟各位一起领略一下Numpy库中的各种高端操作——函数~



END


7781b6db7c53fd904ef4baed1f12aa33.webp6c15a69ba7b289a8065ade32758b784c.webp

码字不易

多多关注

52d9e147dc1ffd0cd4d866d43504b074.webp

点分享

609fa107ef131c5a0a9fa45905f79cde.webp

点收藏

875a140b96501e2869ec71370064b2a6.webp

点点赞

8596e6c9f0a0b4f7c085d0266f0391f4.webp

点在看

浏览 28
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报