回覆列表
  • 1 # 使用者710995342817

    熟練使用 numpy 和 pandas 裡面自帶的 functions 會比自己寫 for loop 快很多倍,比如金融裡面求最大回撤,常規做法是一個 for loop。如果用 pandas.rolling_max,結果如下:對於一個一億個點的時間序列 ts, 用常規演算法在 Python 裡面要算 1min39s,而把 ts 先變成 pandas.Series 再用 rolling_max 只需要不到 3s. 裡面的具體演算法不是很清楚,希望 CS 專業人士來回答。還有很多其他的例子,樓上也提到了用 map, reduce, filter + lambda functional programming 的淫招,或者配合 pandas 的 groupby 使用。還有對於金融中的因子數值計算,強烈安利 numexpr (@gygigi khgjkbj 提到的)。下次有空寫個 numexpr library 在因子計算中的應用。

  • 2 # 使用者7169188564904

    def transpose(matrix):

    M = len(matrix)

    N = len(matrix[0])

    t = []

    for i in range(0, N):

    r = []

    for j in range(0, M):

    r.append(matrix[j][i])

    t.append(r)

    return t

  • 中秋節和大豐收的關聯?
  • 讀書心得,怎麼寫?