向量化運算的定義
向量化計算是一種特殊的并行計算的方式, 它可以在同一時間執(zhí)行多次操作,通常是對不同的數(shù)據(jù)執(zhí)行同樣的一個或一批指令耍群, 或者說把指令應用于一個數(shù)組/ 向量。(主要用于python第三方庫pandas的Series系列和DataFrame數(shù)據(jù)框運算)
用到的庫:numpy
利用arange方法生成等差數(shù)據(jù)找筝,基本語法如下:
numpy.arange(start, end, step) 蹈垢,其中,start是開始值袖裕,end 是結(jié)束值曹抬,step是步長
四則運算:
相同的位置的數(shù)據(jù)進行計算,結(jié)果保留在相同的位置急鳄。
函數(shù)運算
相同的位置的數(shù)據(jù)進行函數(shù)運算谤民,函數(shù)的返回結(jié)果保留在相同的位置。
? func(x)
例如:power(x, y)
? ? 對x中的每個元素求y次方攒岛。
比較運算(>,<,=)
如1-1圖例
常用于過濾并取值赖临,如a[a>4]胞锰,表示取a中大于4的數(shù)值灾锯,如1-2圖例
矩陣運算
在數(shù)學中,矩陣(Matrix)是一個按照長方陣列排列的復數(shù)或實數(shù)集合?[1]?嗅榕,最早來自于方程組的系數(shù)及常數(shù)所構(gòu)成的方陣顺饮。這一概念由19世紀英國數(shù)學家凱利首先提出吵聪。
定義:
基本運算:矩陣運算在科學計算中非常重要?,而矩陣的基本運算包括矩陣的加法兼雄,減法吟逝,數(shù)乘,轉(zhuǎn)置赦肋,共軛和共軛轉(zhuǎn)置块攒。
加法運算
減法運算:
數(shù)乘運算:
————————矩陣的加減法和矩陣的數(shù)乘合稱矩陣的線性運算——————————
轉(zhuǎn)置
共軛及共軛轉(zhuǎn)置
矩陣乘法
向量化計算的原則
1、代碼中盡量避免顯示的for 循環(huán)
2佃乘、過早的優(yōu)化是魔鬼
補充:
apply函數(shù)
apply函數(shù)是`pandas`里面所有函數(shù)中自由度最高的函數(shù)囱井。該函數(shù)如下:
DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)
該函數(shù)最有用的是第一個參數(shù),這個參數(shù)是函數(shù)趣避,相當于C/C++的函數(shù)指針庞呕。
這個函數(shù)需要自己實現(xiàn),函數(shù)的傳入?yún)?shù)根據(jù)axis來定程帕,比如axis = 1住练,就會把一行數(shù)據(jù)作為Series的數(shù)據(jù)
結(jié)構(gòu)傳入給自己實現(xiàn)的函數(shù)中,我們在函數(shù)中實現(xiàn)對Series不同屬性之間的計算愁拭,返回一個結(jié)果讲逛,則apply函數(shù)
會自動遍歷每一行DataFrame的數(shù)據(jù),最后將所有結(jié)果組合成一個Series數(shù)據(jù)結(jié)構(gòu)并返回岭埠。
lambda關鍵字
lambda關鍵字創(chuàng)造匿名函數(shù)妆绞。匿名是不需要以標準的方式來聲明,比如說使用 def 語句枫攀。(除非賦值給一個局部變量括饶,這樣的對象也不會在任何的名字空間內(nèi)創(chuàng)建名字,上面的例子中會創(chuàng)建名字来涨。)
作為函數(shù)图焰,它們也能有參數(shù)。一個完整的 lambda"語句"代表了一個表達式蹦掐,這個表達式的定義體必須和聲明放在同一行技羔。語法如下:
lambda [arg1[, arg2, ... argN]]: expression
參數(shù)是可選的,如果使用的參數(shù)話卧抗,參數(shù)通常也是表達式的一部分
map函數(shù)
map是python內(nèi)置函數(shù)藤滥,會根據(jù)提供的函數(shù)對指定的序列做映射。
map()函數(shù)的格式是:
map(function,iterable,...)
第一個參數(shù)接受一個函數(shù)名社裆,后面的參數(shù)接受一個或多個可迭代的序列拙绊,返回的是一個集合。
把函數(shù)依次作用在list中的每一個元素上,得到一個新的list并返回标沪。注意榄攀,map不改變原list,而是返回一個新list金句。
例如:map(lambda x,y : x + y 檩赢, [ 1,3,5,7,9 ] , [2,4,6,8,10] )
# 結(jié)果如下:
[ 3 ,7 ,11 ,15 ,19 ]