以下代码表明pandas在clip()函数这个特定情况下可能比numpy慢得多。令人惊讶的是,即使在numpy中执行计算、然后从pandas回到numpy并再次返回pandas,仍然比在pandas中执行要快得多。
难道不应该用这种绕路的方式来实现pandas函数吗?
难道不应该用这种绕路的方式来实现pandas函数吗?
In [49]: arr = np.random.randn(1000, 1000)
In [50]: df=pd.DataFrame(arr)
In [51]: %timeit np.clip(arr, 0, None)
100 loops, best of 3: 8.18 ms per loop
In [52]: %timeit df.clip_lower(0)
1 loops, best of 3: 344 ms per loop
In [53]: %timeit pd.DataFrame(np.clip(df.values, 0, None))
100 loops, best of 3: 8.4 ms per loop
.values
的示例可以进行直接比较。 - jxramos