numpy合并不同维度矩阵

您所在的位置:网站首页 矩阵维度怎么算 numpy合并不同维度矩阵

numpy合并不同维度矩阵

2023-03-27 09:31| 来源: 网络整理| 查看: 265

6bbe334621945c614ed7d3ae084be502.pngPython第十九课:numpy库(下) fa256a2494d88b2d5fcc03de27d7cd7d.png 点击上方“蓝字”,关注我们.

上一节课我们讲解了Numpy库的基础属性,创建数组,基本运算和查找索引这五部分内容,大家都学会了吗?若是没问题的话,就让我们进入后半程的学习吧,打开你的笔记本,开始今天的课程。

3ec3593035ea1ab201b4dbc1c3b6d097.png

1f763385e1844cc2e9e977693f3cc5a8.gif

这节课我们介绍Numpy的数组合并、分割,顺便讲一下Python中的深浅复制。

1数组合并

Numpy可以对多个数组进行操作,其中合并操作是多个数组或矩阵合并成一个矩阵,具体操作如下:

7528d06ae27c57332ffcd9a6c3354590.png

a数组和b数组经过上下合并和左右合并后,生成的c和d数组是不一样的,通过array.shape方法输出矩阵的行列个数。

接下来我们再次讲解转置的操作,上一节介绍了转置,就是矩阵行列互换操作。但是有的同学在进行转置操作的时候出现了一些问题,导致无法转置。

ce498d6ded31388c9d4163b1d24e4804.png

这是为什么呢?结合刚才的array.shape方法我们发现了个问题:一维数组的输出跟多维数组输出不太一样:前者只输出元素个数,后者输出行列个数。

这说明Numpy对待一维数组和多维数组是不一样的。Numpy的一维数组我们称为序列,多维数组成为矩阵,而转置是矩阵的运算,与数列无关。但是,数学中存在一维矩阵的概念,因此我们可以通过转换来计算一维数组的转置。

00a2d5e44ec18ec59a982ce57967f32e.png

给序列增加维度,变成一维矩阵,np.newaxisd的作用相信大家已经能猜出来了,操作与列表相似,这样就能完成一维矩阵的转置问题了。

至于多个数组的合并,除了多次使用单次合并之外,我们有更好的办法:

2fbc6170432b992e9bd18731d0ee6fc8.png

2数组拆分

随便创建一个三行四列的数组:

3f281fa039ce80b3081f36b8da0a30e7.png

拆分数组可以按行拆分、按列拆分;或是等量拆分、不等量拆分。这四种分割方式是不冲突的。

5f8e9f0ffeceea712bcc240a08fe2a59.png

5b461e374c63352159e5791a0fb736e1.png

观察这两种分割方式,我们不难得出:等量分割和不等分割本质差不多,区别就在于数组能不能平均分成若干份。如果不能,不等分割法依然会依次进行分割,最后一个元素将会缺少若干项。

除了上图的两种分割函数,还有两种简化的行列分割函数:

ea8cf6ca69c0dba6dcf9890ebee766b2.png

3深浅copy

我们使用Python经常对一些元素进行赋值,比如a=1,b="checkout",c=[1,2,3]。大家可能都知道,a=1,b=a,c=b,那么如果a=a+1,即使a=2,b,c也仍然是1。

但是如果a,b,c是列表、字典、以及咱们numpy的数组的话,事情就变得奇妙了起来。为什么这么说呢?

68d0d6693b86b72449c94b55ea0040b1.png

啊哈,是不是傻了眼?我明明只修改了a当中的一个元素值,bcd三个变量的值都变了。如果大家学过C语言的话,这不难理解:三个变量使用了相同的内存空间,也就是说,abcd四个变量都是一个数组。我们来验证一下:

d629e6224a934cc7b5fd8d1396d3d30e.png

果然如此!那如果我创建一个数组,只想要前一个数组的值,不想跟它占用同一块内存。也就是说,像数字类型一样,不会牵一发而动全身。那么我们就需要这么做:

55977a0f9cce176721217e3d32bf2c91.png

.copy()方法就为我们复制了一个a的变量,传给了b,但是ab是不同的变量。

这就说明了,等号是浅copy,在可变数据类型中共享内存地址;而不可变数据类型就没有深浅copy这一说啦。

6d08e2a273a40b732bc3d070bdfbafed.png

Numpy基础入门就讲解到这里啦,什么,你说自己感觉啥也没学会?不知道学完之后能干啥?别慌,Numpy只是个计算工具而已,需要与接下来我们介绍的大哥Pandas一起使用,就能完成很多超酷的事情啦。不信的话,你可以提前看看课件,感受一下数据分析的魅力。

本节课到此就结束啦,大家如果有什么疑问可以在公众号留言给我们哟,我们会在第一时间为大家解答。同时,没有课件的小伙伴在公众号回复numpy获取链接。大家在课下要多加练习,善于思考,我们下节课再见!

0f5d6d54a5ce5bbd9bce9ce8825cae93.gif

6d08e2a273a40b732bc3d070bdfbafed.png 73119da9e3656bd3b4a3c600bb22ae02.png 青科工作室出品 89b3ec0c512a848b2b7405a4e4be61d6.png 8660a2b1c466a066b197867edef806d5.png

文:郭锦洋

审:谢寿春

8660a2b1c466a066b197867edef806d5.png 438818b892704c9fd8d66c2b0832774e.png你点的每个再看,我都认真当成了喜欢


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3