量化金融基礎篇 [ python 量化資料處理比較常用函式]
阿新 • • 發佈:2019-02-01
1. lambda函式,這個有點類似於C中的巨集定義函式。邏輯複雜的函式定義建議不要使用lambda函式宣告。
add = lambda x,y : x+y
#結果為3
print(add(1,2))
2. map()函式,根據提供的函式對指定的序列做對映,將函式作用在指定序列中的每一個引數上。
map(function, interable, .....) #funciton 要使用的函式名,iterable指定的序列
def add(x,y) :
return x+y
#函式也可以使用lambda定義
map(add,[1,2,3],[4,5,6])
#結果[5,7,9]
3. filter()函式,根據提供的函式,對指定的序列做過濾操作(用在金融資料比如篩選市盈率,業績等等很有用)
filter(function, iterable)
def is_even(n):
return n % 2 == 0
#結果[2,4],python 3 會返回一個filter object
result = filter(is_even, [1,2,3,4,5])
4. reduce()函式,累計計算函式,根據提供的函式(需要有兩個引數介面)對陣列進行累計計算
reduce(function,iterable[,inializer])
dfe add(x,y) :
return x+y
#結果為1+2+3+4 = 10
reduce(add,[1,2,3,4])
5. zip()函式,將可迭代物件作為引數,將物件中對應的元素打包成一個個元組,然後返回有這些元組組成的列表。(封裝股票日線資料比較有用)zip([iterable,...])
a=[1,2,3]
b=[4,5,6]
c=[4,5,6,7]
#結果[(1,4),(2,5),(3,6)]
result=zip(a,b)
#結果仍然為[(1,4),(2,5),(3,6)]
#數量不一致時要向數量少保持一致
result =zip(a,c)
6. partial()函式,有點像對函式中的引數做一個預設值繫結
def add(x,y): return x+y #結果為7 print(add(3,4)) #做一個partial形成一個新函式 newadd = partial(add,20) #結果為23 print(newadd(3)) #相當於把前面宣告的add函式變為add(x,y = 20)