1. 程式人生 > >量化金融基礎篇 [ python 量化資料處理比較常用函式]

量化金融基礎篇 [ python 量化資料處理比較常用函式]

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)