《Python数据分析入门》第一部分——向量化运算

向量化运算的定义

向量化计算是一种特殊的并行计算的方式, 它可以在同一时间执行多次操作,通常是对不同的数据执行同样的一个或一批指令, 或者说把指令应用于一个数组/ 向量。(主要用于python第三方库pandas的Series系列和DataFrame数据框运算)

用到的库:numpy

利用arange方法生成等差数据,基本语法如下:
numpy.arange(start, end, step) ,其中,start是开始值,end 是结束值,step是步长


四则运算:

相同的位置的数据进行计算,结果保留在相同的位置。

《Python数据分析入门》第一部分——向量化运算_第1张图片

函数运算

相同的位置的数据进行函数运算,函数的返回结果保留在相同的位置。

  func(x)

例如:power(x, y)

    对x中的每个元素求y次方。


《Python数据分析入门》第一部分——向量化运算_第2张图片
power函数举例

比较运算(>,<,=

如1-1图例

《Python数据分析入门》第一部分——向量化运算_第3张图片
1-1

常用于过滤并取值,如a[a>4],表示取a中大于4的数值,如1-2图例

《Python数据分析入门》第一部分——向量化运算_第4张图片
1-2

矩阵运算

在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 [1] ,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。

定义:

《Python数据分析入门》第一部分——向量化运算_第5张图片
来源于百度

基本运算:矩阵运算在科学计算中非常重要 ,而矩阵的基本运算包括矩阵的加法,减法,数乘,转置,共轭和共轭转置。

加法运算

《Python数据分析入门》第一部分——向量化运算_第6张图片
来源于百度


减法运算:

来源于百度


数乘运算:

《Python数据分析入门》第一部分——向量化运算_第7张图片
来源于百度

————————矩阵的加减法和矩阵的数乘合称矩阵的线性运算——————————

转置

《Python数据分析入门》第一部分——向量化运算_第8张图片
来源于百度


共轭及共轭转置

《Python数据分析入门》第一部分——向量化运算_第9张图片
来源于百度


矩阵乘法

《Python数据分析入门》第一部分——向量化运算_第10张图片
来源于百度

向量化计算的原则

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 ]

你可能感兴趣的:(《Python数据分析入门》第一部分——向量化运算)