[英]How can I speed up multiple arithmetic operations on pandas.Series by performing them all at once?
我有這樣的代碼:
large_series += add_factor
large_series *= multiply_factor
其中large_series
是一個大的pandas.Series
。
這段代碼占用了我的大量運行時間,我想對其進行優化。 一個觀察結果是,與其將這作為兩個單獨的操作來執行 - 首先添加到整個Series
,然后將整個Series
相乘 - 它可以通過單個操作完成:增加和乘以Series
每個值。
那怎么辦呢?
我聽說過像 Numba 這樣的 Pandas 的 JIT 優化器,想知道這是否也有幫助。
加快速度的一種方法是使用更多處理器。 你可以通過使用import modin.pandas as pd
來做到這一點(你必須先安裝)
import pandas as pd
import time
df = pd.DataFrame({'a':[random.randint(0, 1e3) for _ in range(int(1e6))]})
add_factor = 2193
multiply_factor = 4353
s = time.time()
df.a += add_factor
df.a *= multiply_factor
print(time.time()-s, 'seconds elapsed')
0.13749933242797852 seconds elapsed
import modin.pandas as pd
import time
df = pd.DataFrame({'a':[random.randint(0, 1e3) for _ in range(int(1e6))]})
add_factor = 2193
multiply_factor = 4353
s = time.time()
df.a += add_factor
df.a *= multiply_factor
print(time.time()-s, 'seconds elapsed')
0.08657097816467285 seconds elapsed
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.