图解入门 NumPy,来了!

Python与算法社区

共 1653字,需浏览 4分钟

 ·

2020-11-06 07:41

Python与算法社区
已原创425篇,干货满满
值得星标


01

02

03


三步加星标



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


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

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

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

就拿32乘32像素的黑白图片而言,只需一行代码便提取出左上角的10个像素块:
In [11]: a=np.random.randint(0,255,size=(32,32))                                
# 提取左上角的10*10的像素块
In [14]: a[:10,:10]                                                             
Out[14]: 
array([[115168,  94,  97208249,  94,  11194185],
       [ 77130203188243207229213170,  52],
       [250,  98,   7234,  69188152,  66210159],
       [228252122126,  36126210176,  60136],
       [103,  26,  98,  57,  56206221,   9165,  90],
       [ 47188,  55,  92169,   4150200105,  84],
       [241,  36161,   3,  57198216,  26,  33,  13],
       [ 34,  65175213,  52159,   7102102133],
       [214192,  38252,  12,  71,  38,  44165135],
       [234105130189162247,  58,  80,  88,  83]])


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

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

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


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

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


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


点乘实际上等价于:
 


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


我把它们整理为一个pdf文档,一共14页,取名为《图解入门NumPy》,想要的微信我,备注:图解


不必打赏
给我点个赞
就心满意足了
浏览 39
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

分享
举报