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》,想要的微信我,备注:图解
不必打赏
给我点个赞
就心满意足了