简介
在深度学习数据处理过程中经常会用到的四个科学计算的基础库,分别是:NumPy、Pandas、Matplotlib和SciPy。本篇将先分享下Numpy的介绍和个人的学习步骤。
NumPy
NumPy大概是是数据处理中使用次数最多的计算库,它提供了很多的基础计算,按照NumPy官网的说明:NumPy是一个功能强大的Python库,主要用于对多维数组执行计算。NumPy这个词来源于两个单词-- Numerical和Python。NumPy提供了大量的库函数和操作,可以轻松地进行数值计算。
安装:安装非常的简单,内存占用也非常小,直接在自己的python环境下‘pip install numpy’就可以安装,几乎不会存在安装失败。安装后简单检验下导入使用,这样便是正常的。
正在上传…重新上传取消
接下来就是入门教程,教程中说到NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组。它允许你在Python中进行向量和矩阵计算。NumPy绝对是科学Python成功的关键之一,如果你想要进入Python中的数据科学和/或机器学习,你就要必须学习它。
创建数组
既然它都这么说了,这里就从创建一个数组开始。
图中是四种简单的创建数组的方法,这里我们创建的是一维数组,可以直接把列表或者元组传递给array()函数,创建出的数组是一样的。arange()函数可以传递进去范围,从0开始到参数的前一位的所以整数。linspace()函数主要体现出数组的**症特性,即使其中有长度不同的数,也会按照统一的宽度显示,非常整齐。
再试试创建个二维的数组玩一玩,首先进行了一次错误的尝试,这里将两个列表传递给了array()函数,出现以下报错。
很明显array()函数只要一个参数,所以可以在列表里再创建几组列表,如下面图中所示。
创建成功了,元素的位置依然是非常的对齐,所以创建数组的维度和外边包装的列表层数有关,这里用列表中括号包裹了两层,就创建了二维的数组。在想要查看某一个位置的元素时可以根据坐标的方法。根据测试,左上角是**(0,0)的位置,其中的第一个0表示所在行,第二个0表示列。如果是三维的数组呢,继续试一试。
创建出来了,三层的列表中括号一定要查清楚哦。这里对位置查询有不太明白的,可以参考上面方法,上面采取的从**开始查找并控制两个参数不变改变另一个参数的方法。
接下来再试一试基本的操作符,看到这里的时候突然有种“欲练此功,必先自宫,如不自宫,也能成功”的感觉,害我在创建三维数组的时候数了那么多层的中括号。简单的方法试一试。
数组计算
创建没有问题了,直接reshape就能够设置了数组的维度。当然不能仅仅止步于数组的创建上,我们最终需要做的就是运算数组,这里还从最基本的运算方法‘+’‘-’‘*’‘/’试一试。
以上计算都冇问题,在根据条件对比两个数组时也得到了想要的结果,继续试试特殊的运算符。
上面的max()、min()和sum()都没有问题,而且很好理解规则。其中的cumsun()的计算规则是从前到后一个累加计算,dot()函数的计算有些不太直观的看出来,这里解释了详细的计算步骤,供大家理解。
以b.dot(a)为例,diy下计算过程
[603=63*0+45*3+78*6 789=63*1+45*4+78*7 975=63*2+45*5+78*8
240=98*0+12*3+34*6 384=98*1+12*4+34*7 528=98*2+12*5+34*8
267=52*0+17*3+36*6 372=52*1+17*4+36*7 477=52*2+17*5+36*8]
如果是a.dot(b)就是交换下计算的顺序。
数组索引
根据我们的条件筛选出符合的元素。
简单的小试,根据下标进行的索引。再根据判断条件试试
总结
本篇内容为Numpy的初级使用,主要尝试了Numpy的安装、创建数组、数组计算和索引的四个部分。MindSpore深度学习框架中也提供了Numpy的接口,后续将会结合使用,并逐渐深入学习使用Numpy的用法,也将继续给大家分享。欢迎大家留言讨论~