gpt4 book ai didi

python-3.x - timedelta 方法的性能缓慢

转载 作者:行者123 更新时间:2023-12-04 20:34:13 24 4
gpt4 key购买 nike

为什么.dt.days花费比 .dt.total_seconds() 长 100 倍的时间?

df = pd.DataFrame({'a': pd.date_range('2011-01-01 00:00:00', periods=1000000, freq='1H')})
df.a = df.a - pd.to_datetime('2011-01-01 00:00:00')
df.a.dt.days # 12 sec
df.a.dt.total_seconds() # 0.14 sec

最佳答案

.dt.total_seconds基本上只是一个乘法,可以以 numpythonic 速度执行:

def total_seconds(self):
"""
Total duration of each element expressed in seconds.

.. versionadded:: 0.17.0
"""
return self._maybe_mask_results(1e-9 * self.asi8)

而如果我们中止 days操作,我们看到它花费时间在一个带有 getattr 和 Timedelta 对象( source )构造的慢速 listcomp 中:
    360         else:
361 result = np.array([getattr(Timedelta(val), m)
--> 362 for val in values], dtype='int64')
363 return result
364

对我来说,这是一种尖叫:“看,让我们把它改正,当我们到达它时,我们会跨越优化桥。”

关于python-3.x - timedelta 方法的性能缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38927886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com