向量化运算的定义
向量化计算是一种特殊的并行计算的方式, 它可以在同一时间执行多次操作,通常是对不同的数据执行同样的一个或一批指令, 或者说把指令应用于一个数组/ 向量。(主要用于python第三方库pandas的Series系列和DataFrame数据框运算)
用到的库:numpy
利用arange方法生成等差数据,基本语法如下:
numpy.arange(start, end, step) ,其中,start是开始值,end 是结束值,step是步长
四则运算:
相同的位置的数据进行计算,结果保留在相同的位置。
函数运算
相同的位置的数据进行函数运算,函数的返回结果保留在相同的位置。
func(x)
例如:power(x, y)
对x中的每个元素求y次方。
power函数举例比较运算(>,<,=)
如1-1图例
1-1常用于过滤并取值,如a[a>4],表示取a中大于4的数值,如1-2图例
1-2矩阵运算
在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 [1] ,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。
定义:
来源于百度基本运算:矩阵运算在科学计算中非常重要 ,而矩阵的基本运算包括矩阵的加法,减法,数乘,转置,共轭和共轭转置。
加法运算
来源于百度减法运算:
来源于百度数乘运算:
来源于百度————————矩阵的加减法和矩阵的数乘合称矩阵的线性运算——————————
转置
来源于百度共轭及共轭转置
来源于百度矩阵乘法
来源于百度向量化计算的原则
1、代码中尽量避免显示的for 循环
2、过早的优化是魔鬼
补充:
apply函数
apply函数是`pandas`里面所有函数中自由度最高的函数。该函数如下:
DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)
该函数最有用的是第一个参数,这个参数是函数,相当于C/C++的函数指针。
这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据
结构传入给自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数
会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构并返回。
lambda关键字
lambda关键字创造匿名函数。匿名是不需要以标准的方式来声明,比如说使用 def 语句。(除非赋值给一个局部变量,这样的对象也不会在任何的名字空间内创建名字,上面的例子中会创建名字。)
作为函数,它们也能有参数。一个完整的 lambda"语句"代表了一个表达式,这个表达式的定义体必须和声明放在同一行。语法如下:
lambda [arg1[, arg2, ... argN]]: expression
参数是可选的,如果使用的参数话,参数通常也是表达式的一部分
map函数
map是python内置函数,会根据提供的函数对指定的序列做映射。
map()函数的格式是:
map(function,iterable,...)
第一个参数接受一个函数名,后面的参数接受一个或多个可迭代的序列,返回的是一个集合。
把函数依次作用在list中的每一个元素上,得到一个新的list并返回。注意,map不改变原list,而是返回一个新list。
例如:map(lambda x,y : x + y , [ 1,3,5,7,9 ] , [2,4,6,8,10] )
# 结果如下:
[ 3 ,7 ,11 ,15 ,19 ]
网友评论