相关疑难解决方法(0)

数值处理二维数组的最快方法:数据帧 vs 系列 vs 数组 vs numba

编辑补充:我不认为 numba 基准是公平的,下面的注释

我正在尝试对以下用例的数值处理数据的不同方法进行基准测试:

  1. 相当大的数据集(100,000+ 条记录)
  2. 100 多行相当简单的代码 (z = x + y)
  3. 不需要排序或索引

换句话说,不需要系列和数据框的完全通用性,尽管它们被包含在 b/c 中,但它们仍然是封装数据的便捷方式,并且经常有预处理或后处理确实需要熊猫的通用性numpy 数组。

问题:基于此用例,以下基准是否合适,如果不合适,我该如何改进它们?

# importing pandas, numpy, Series, DataFrame in standard way
from numba import jit
nobs = 10000
nlines = 100

def proc_df():
   df = DataFrame({ 'x': np.random.randn(nobs),
                    'y': np.random.randn(nobs) })
   for i in range(nlines):
      df['z'] = df.x + df.y
   return df.z

def proc_ser():
   x = Series(np.random.randn(nobs))
   y = Series(np.random.randn(nobs))
   for i in range(nlines):
      z = x + y
   return z …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas numba

2
推荐指数
1
解决办法
2869
查看次数

纯 python 上的 Numba VS numpy-python 上的 Numpa

与使用纯 python 相比,使用 numba 会产生更快的程序:

现在看来,纯 python 上的 numba 甚至(大部分时间)都比 numpy-python 快,例如https://jakevdp.github.io/blog/2015/02/24/optimizing-python-with- numpy 和 numba/

根据https://murillogroupmsu.com/julia-set-speed-comparison/,在纯 python 代码上使用的 numba 比在使用 numpy 的 python 代码上使用的速度快。这通常是真的吗?为什么?

/sf/answers/1816668031/中解释了为什么纯 python 上的 numba 比 numpy-python 更快:numba 看到更多的代码并且有更多的方法来优化代码,而 numpy 只看到一小部分。

这是否回答了我的问题?在使用 numpy 时,我是否会妨碍 numba 完全优化我的代码,因为 numba 被迫使用 numpy 例程而不是找到更优化的方法?我曾希望 numba 会意识到这一点,如果它没有好处,就不要使用 numpy 例程。然后它会使用 numpy 例程,只是它是一个改进(毕竟 numpy 已经过很好的测试)。毕竟“对 NumPy 数组的支持是 Numba 开发的重点,目前正在进行广泛的重构和改进。”

python performance numpy numba

1
推荐指数
1
解决办法
573
查看次数

标签 统计

numba ×2

numpy ×2

python ×2

pandas ×1

performance ×1