gpt4 book ai didi

用于大数据分析的 Numpy/Scipy 与纯 C++ 的 Python

转载 作者:IT老高 更新时间:2023-10-28 23:15:09 26 4
gpt4 key购买 nike

在相对较小的项目中使用 Python 让我体会到这种语言的动态类型特性(无需声明代码来跟踪类型),这通常可以使开发过程更快、更轻松。但是,我觉得在更大的项目中,这实际上可能是一个障碍,因为代码运行速度比说它在 C++ 中的等价物要慢。但是话又说回来,将 Numpy 和/或 Scipy 与 Python 一起使用可能会让您的代码运行得与原生 C++ 程序一样快(其中 C++ 中的代码有时需要更长的时间来开发)。

我在阅读了 Justin Peel 对线程“Is Python faster and lighter than C++?”的评论后发布了这个问题,他在其中指出:“此外,那些说 Python 在处理严重数字时速度很慢的人并没有使用 Numpy 和 Scipy 模块。这些天,Python 在科学计算中真正起飞。当然,速度来自使用用 C 编写的模块或编写的库在 Fortran 中,但在我看来,这就是脚本语言的美妙之处。”或者正如 S. Lott 在关于 Python 的同一线程上所写的那样:“......因为它为我管理内存,所以我不必进行任何内存管理,从而节省了追踪核心泄漏的时间。”我还在“Benchmarking (python vs. c++ using BLAS) and (numpy)”上检查了一个与 Python/Numpy/C++ 相关的性能问题,J.F. Sebastian 写道:“......我的机器上的 C++ 和 numpy 没有区别。”

这两个线程都让我想知道对于使用 Numpy/Scipy 生成软件来分析“大数据”的 Python 程序员来说,了解 C++ 是否有任何真正的优势,其中性能显然非常重要(还有代码可读性和开发速度是必须的)?

注意:我对处理巨大的文本文件特别感兴趣。具有多列的 100K-800K 行的文本文件,Python 可能需要 5 分钟的时间来分析“仅”200K 行长的文件。

最佳答案

首先,如果您的大部分“工作”来自处理巨大的文本文件,这通常意味着您唯一有意义的速度瓶颈是磁盘 I/O 速度,而与编程语言无关。


至于核心问题,“回答”可能意见太丰富了,但我至少可以给你我自己的经验。多年来,我一直在编写 Python 来处理大数据(天气和环境数据)。我从来没有遇到过由于语言而导致的严重性能问题。

开发人员(包括我自己)往往忘记的一点是,一旦流程运行足够快,花时间让它运行得更快就是浪费公司资源。 Python(使用成熟的工具,如 pandas/scipy )运行速度足以满足要求,而且它的开发速度很快,所以在我看来,它是一种完全可以接受的“大数据”处理语言。

关于用于大数据分析的 Numpy/Scipy 与纯 C++ 的 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25049338/

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