鱼C论坛

 找回密码
 立即注册
查看: 4192|回复: 11

[技术交流] 11 - 合并函数的小坑须知|【常用方法】

[复制链接]
发表于 2020-2-16 13:11:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2020-2-16 21:43 编辑

上一讲我们理解了副本和视图,本讲就里面的合并函数好好说下。

新建 4*4 数组和一维数组:
Snip20200216_476.png


通过上一讲的 np.c_ 来合并 a 和 b:
Snip20200216_477.png


现在 b 就跑到 a 的右边了。

我们换一换:
Snip20200216_478.png


也很自然换过来了。

c_ 中的 c 是 column 的缩写,行的话,就是 r 。

那么我可以将 b 加到 a 下面吗?

试一下:
Snip20200216_479.png


啊呀,报错了~

报错内容也说了:

游客,如果您要查看本帖隐藏内容请回复

目前来看 b 是横向排的 4 个项,为什么不能合并呢?

a 是 4 行 4 列,对吧。

b 是啥?我们输出 shape 看看:
Snip20200216_480.png


4 代表行数,那么这个数组其实是列向量(纵排)!

所以不能直接和 a 上下拼接。

这个是新手很容易踩的坑。

此时我们使用 reshape 将 b 转为行向量。

代码:
b.reshape(1,4)
然后合并:
Snip20200216_482.png


搞定!


更多组合方法

组合有点像拼积木:

行数相同,左右拼
列数相同,上下拼

记住这个口诀,合并时的很多坑都会避开~

那么如果 b 是一个二维数组。

水平左右拼接,只要默认行数相同即可。

例如:
Snip20200216_484.png


通过 np.c_ 将其合并到 a 的右边:
Snip20200216_485.png


左右都可以,但是上下不行。

二维数组变换比一维要复杂一些

若通过 reshape 方法转为 2*4 数组:
Snip20200216_486.png


主要图中箭头的走向,先把二维数组打“平”,然后按照行列要求依次插入。

这样是数组的重新塑造,有点不符合矩阵变化的规则。

怎么办呢?

我们要用到转置,很简单直接:
Snip20200216_487.png


再来拼到 a 的上面:
Snip20200216_488.png


x.T 比 reshape 用的更多~

除了 np.c 还可以使用 np.column_stack((a,b))

从名字我们知道也是对列进行叠加,若 a,b 都是一维列,合并变为二维。

行叠加可以使用 np.row_stack((a,b))

若 a,b 是一维列,会先转换成二维行后合并成二维。

如果你分不清行列向量,就用 shape 查,然后 x.T 或者 reshape 转化。

下一节我们来学习如何拆分数组。

源代码: 11Merge.zip (335 Bytes, 下载次数: 0, 售价: 3 鱼币)




如果有收获,别忘了评分


                               
登录/注册后可看大图


如果想看更多,请订阅 淘专辑传送门)(不喜欢更要订阅

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-16 13:15:34 | 显示全部楼层
Numpy 神仙操作,我要学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-17 11:22:15 | 显示全部楼层
Numpy 神仙操作,我要学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-17 12:32:37 From FishC Mobile | 显示全部楼层
Numpy 神仙操作,我要学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-17 12:51:06 | 显示全部楼层
Numpy 神仙操作,我要学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 10:59:54 | 显示全部楼层
Numpy 神仙操作,我要学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-14 12:03:07 | 显示全部楼层
Numpy 神仙操作,我要学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 00:07:17 | 显示全部楼层
Numpy 神仙操作,我要学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-3 20:24:45 | 显示全部楼层
Numpy 神仙操作,我要学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-24 10:07:49 | 显示全部楼层
Numpy 神仙操作,我要学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-30 16:02:43 | 显示全部楼层
继续学习numpy
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-9 21:20:08 | 显示全部楼层
Numpy 神仙操作,我要学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 08:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表