前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图解入门 NumPy,来了!

图解入门 NumPy,来了!

作者头像
double
发布2020-11-11 16:01:49
4900
发布2020-11-11 16:01:49
举报
文章被收录于专栏:算法channel算法channel

施工计划来到数据分析以及爬虫部分,Python领域,提到数据,自然会联想到一个包,NumPy,它太通用了,Pandas,SciPy,Tensorflow,scikit-learn 都选它为基础框架,所以Python生态里,掌握NumPy几乎是必须的。

NumPy处理数据,书写精简,能方便地对数据进行切片,切块,多维向量操作。

一般常见的数据类型有四种,以excel或csv为代表的二维数组型表格,还有以单通道或多通道的图像cv文件,还有一维数组格式的音频文件,最后以输入文本为代表的nlp

这些不同种类的输入数据格式,都能通过NumPy方便的表示和处理。正因如此,进一步强化了NumPy的王者地位。

就拿32乘32像素的黑白图片而言,只需一行代码便提取出左上角的10个像素块:

代码语言:javascript
复制
In [11]: a=np.random.randint(0,255,size=(32,32))                                
# 提取左上角的10*10的像素块
In [14]: a[:10,:10]                                                             
Out[14]: 
array([[115, 168,  94,  97, 208, 249,  94,  11, 194, 185],
       [ 77, 130, 203, 188, 243, 207, 229, 213, 170,  52],
       [250,  98,   7, 234,  69, 188, 152,  66, 210, 159],
       [228, 252, 122, 126,  36, 126, 210, 176,  60, 136],
       [103,  26,  98,  57,  56, 206, 221,   9, 165,  90],
       [ 47, 188,  55,  92, 169,   4, 150, 200, 105,  84],
       [241,  36, 161,   3,  57, 198, 216,  26,  33,  13],
       [ 34,  65, 175, 213,  52, 159,   7, 102, 102, 133],
       [214, 192,  38, 252,  12,  71,  38,  44, 165, 135],
       [234, 105, 130, 189, 162, 247,  58,  80,  88,  83]])

接下来,看看NumPy的基础用法。

要想快速掌握NumPy,要理解一些基本原理,如应用最广泛的reshape方法,通过它能将一维数组转为多维,反之亦然。表象为多维,实质在内存中始终为一维。

结合图形可视化,加速理解NumPy中的这些基本运算,如两个一维数组相加的可视化:

再有,NumPy的重要机制之一:广播,可能有些读者对其有些迷惑,不知何为广播,借助可视化图,一看便知:

1个1.6,被广播为2个1.6,原因是要与前面的数组长度匹配上,然后逐元素相加。

除了数组对象之外,NumPy又封装一个矩阵对象,它能提供线代中的点乘操作,这是机器学习公式运算所需要的,点乘的可视化图形为:

点乘实际上等价于:

其他剩余操作,如按块索引、常见聚合操作,也有对应的可视化图。

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

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

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

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

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