返回介绍

Bake-off

发布于 2025-02-25 23:44:03 字数 1337 浏览 0 评论 0 收藏 0

# Final bake-off

w = 10
print 'Python'.ljust(w),
%timeit pdist_python(xs)
print 'Numpy'.ljust(w),
%timeit pdist_numpy(xs)
print 'Numexpr'.ljust(w),
%timeit pdist_numexpr(xs)
print 'Numba'.ljust(w),
%timeit pdist_numba(xs)
print 'Parakeet'.ljust(w),
%timeit pdist_parakeet(xs)
print 'Cython'.ljust(w),
%timeit pdist_cython(xs)
print 'C'.ljust(w),
%timeit pdist_c(xs)
print 'C++'.ljust(w),
%timeit pdist_cpp(xs)
print 'Fortran'.ljust(w),
%timeit pdist_fortran(xs)

from scipy.spatial.distance import pdist as pdist_scipy
print 'Scipy'.ljust(w),
%timeit pdist_scipy(xs)
Python    1 loops, best of 3: 3.72 s per loop
 Numpy     10 loops, best of 3: 94.3 ms per loop
 Numexpr   10 loops, best of 3: 30.8 ms per loop
 Numba     100 loops, best of 3: 11.7 ms per loop
 Parakeet  100 loops, best of 3: 22 ms per loop
 Cython    100 loops, best of 3: 7.08 ms per loop
 C         100 loops, best of 3: 7.52 ms per loop
 C++       100 loops, best of 3: 7.58 ms per loop
 Fortran   100 loops, best of 3: 7.28 ms per loop
 Scipy     100 loops, best of 3: 4.26 ms per loop

Final optimization : Scipy only calculates for i < j < n since the pairwise distance matrix is symmetric, and hence takes about half the time of our solution. Can you modify our pdist_X functions to also exploit symmetry?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文