您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何用cython(或numpy)加快pandas速度

如何用cython(或numpy)加快pandas速度

如果您只是想更快地执行此操作,而不是专门使用cython,那么我将以纯numpy的方式执行(大约快50倍)。

def numpy_foo(arr):
    vals = {i: (arr[i, :] + arr[i:, :]).sum(axis=1).tolist()
            for i in range(arr.shape[0])}   
    return vals

%timeit foo(df)
100 loops, best of 3: 7.2 ms per loop

%timeit numpy_foo(df.values)
10000 loops, best of 3: 144 µs per loop

foo(df) == numpy_foo(df.values)
Out[586]: True

一般而言,与numpy相比,大熊猫为您提供了许多便利,但存在间接费用。因此,在熊猫没有真正添加任何东西的情况下,通常可以通过以numpy的方式来加快速度。再举一个例子,请看我问的这个问题,它显示出大致可比的速度差异(大约23倍)。

其他 2022/1/1 18:30:45 有555人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶