pandas優化方法的總結

2021-10-01 16:02:17 字數 1104 閱讀 8650

一般情況下,我們肯定不能用for 迴圈的方式來處理資料

再不然用df.itertuples 或 df.iterrows,來實現迴圈遍歷,

利用pandas操作的最好的方式還是向量化操作,這樣才能最大化的發揮pandas的優勢

處理最好的採用向量化的操作方式之外,在pandas的官方文件中,也介紹了如何利用numba來加速pandas處理的資料,我們知道numba是對numpy 函式 以及迴圈有很好的加速效果,但是對pandas預設是不支援的,pandas的官方文件給出了乙個例項方法

邏輯就是把pandas中的series轉化為numpy的ndarray,然後利用函式作用於ndarray,在函式上**jit裝飾器,從而將**直接轉化為機器碼,實現加速效果

參考連線

參考**

import numba

@numba.jit

def f_plain(x):

return x * (x - 1)

@numba.jit

def integrate_f_numba(a, b, n):

s = 0

dx = (b - a) / n

for i in range(n):

s += f_plain(a + i * dx)

return s * dx

@numba.jit

n = len(col_n)

result = np.empty(n, dtype='float64')

assert len(col_a) == len(col_b) == n

for i in range(n):

result[i] = integrate_f_numba(col_a[i], col_b[i], col_n[i])

return result

def compute_numba(df):

df['b'].to_numpy(),

df['n'].to_numpy())

return pd.series(result, index=df.index, name='result')

pandas的eval函式對大型的陣列有很好的加速作用

參考官方文件

Pandas常見的效能優化方法

pandas是資料科學和資料競賽中常見的庫,我們使用pandas可以進行快速讀取資料 分析資料 構造特徵。但pandas在使用上有一些技巧和需要注意的地方,如果你沒有合適的使用,那麼pandas可能執行速度非常慢。本文將整理一些pandas使用技巧,主要是用來節約記憶體和提高 速度。在pandas中...

優化方法總結

梯度下降,sgd adam,牛頓法,擬牛頓法 首先要理解,優化方法對誰優化?沒有說錯,我們是做機器學習或者深度學習,在程式中是通過不斷迭代完成的,那麼,學習什麼呢?是x?不對,因為x其實是我們的資料,我們是想通過x求得y也就是根據我們的已有的資料求出對應對映下的結果,可能是個分類,也可能是個回歸,其...

最優化方法總結

1.座標下降法 coordinate descent method 對於乙個最優化問題 min x f x 1,x 2,x n 其求解過程如下 loop until convergence for i 1 n x i arg min x i f x 1,x 2,x i 1,x i,x i 1,x n...