前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【笔记】高效率但却没用过的一些numpy函数

【笔记】高效率但却没用过的一些numpy函数

作者头像
zenRRan
发布2018-08-09 11:39:21
3310
发布2018-08-09 11:39:21
举报

最近在看源码的时候,碰到了一些大佬们常用,但自己暂时还没用过的numpy函数,特意来总结下。

np.meshgrid()

该函数的功能是将两个一维向量转化成矩阵,具体看代码:

先做个初始化

然后传入参数得到输出

可以直观的看出,x1的行是x,x2的列是y,x1、x2矩阵大小为(x1的大小,x2的大小)。但是具体有什么用呢?等介绍完下面一个函数再详细解释哈。

np.ravel() vs np.flatten()

功能是一样的,都是将多为数组降为一维。具体区别上代码:

继续用上面代码中的数据:

可以看出都将各自的矩阵摊开了,那么区别呢?一般情况下,两者功能看起相同,其实区别肯定是内部处理的细节不同,而在这样的情况下,我们应该能猜出来,肯定一个是copy出来的,一个不是。那么我们用代码来证明:

很容易看出flatten是copy,而ravel是在源数据上进行操作的。

但是meshgrid()和该函数有什么关系呢?当然没啥直接关系,但是在做项目中或者做科研中需要绘画方格图,那么这俩一搭配,完美获得我们想要的数据:

r中表示x(或y)轴数据,f表示y(或x)轴数据,就能简单获得方格状数据。当然这个也能用其他方法做,但是看到大牛是这样做的,感觉还是需要学一学。

np.where()

1.就是查找满足条件值的坐标,见代码(参数一个值):

2.满足条件值时,输出不同的数据,见代码(参数三个值):

满足条件用参数0替换,不满足用参数1替换。

np.c_ and np.r_

np.c_是和np.r_感觉还是直接看代码吧:

是不是一目了然?

PS:最近本小编在哈尔滨的SMP会议,有木有在的呀?哈哈

IELTS a bit

put into effect 执行

candidate n. 候选人,候补者;应试者

concussion n. 冲击;震荡;脑震荡

entrust vt. 委托,信托

pertinent adj. 相关的,想干的;中肯的;切题的

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档