簡體   English   中英

如何通過一次執行所有算術運算來加速 pandas.Series 上的多個算術運算?

[英]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

使用 Modin.Pandas

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM