图解入门 NumPy,来了!

  • Post author:
  • Post category:其他


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([[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又封装一个矩阵对象,它能提供线代中的点乘操作,这是机器学习公式运算所需要的,点乘的可视化图形为:

点乘实际上等价于:

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

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

不必打赏

给我点个赞

就心满意足了



版权声明:本文为xo3ylAF9kGs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。