目前适用数据科学计算的语言有不少,包括:SAS,R,JAVA,C/C++,Python等|
语言 | 优点 | 缺点 |
---|---|---|
SAS | 算法全,数据报告全面、准确度高,Entprise Guige 和 Enterprise Miner使用极为方便; | 商业化软件,太贵,使用的公司少,安装image越来越大,从 sas9 以后,动辄就是几十G的安装软件包,由于功能组件多,安装配置极为复杂;另外由于专业度很高,很多参数晦涩难懂,学习周期较长。 |
R | 算法全,使用方便,上手快,社区强大; | 主要在学术研究上使用,企业级应用偏少,扩展性不是太好。 |
JAVA | 成熟,稳定性能好,公司级的应用多; | 数据开发效率太低,算法模块不够丰富。 |
C/C++ | 算法效率高,很多底层的应用使用C/C++开发; | 开发门槛高,算法模块少。 |
Python | 算法模块全,使用方便,上手快,社区强大,公司级应用多; | 大数据计算应用稳定性不够好;多线程功能不完善(伪多线程,被人诟病);python 3 和 2 很多功能不兼容,像是两种语言。 |
总之,Python 虽然也有不少缺点,但优点完胜其它语言,成为数据科学首选的计算机语言。
Python 在数据科学中最常用的库:
领域 | Python库 | 说明 |
---|---|---|
数据预处理 | numpy | 科学计算基础库。提供了高效的多维数据组和向量计算。 |
数据预处理 | scipy | 科学计算库,提供高效的数值计算,包括函数最优化以及数值积分等模块,依赖 Numpy。 |
数据预处理 | pandas | 包含高级数据结构(DataFrame)和类SQL语句,纳入了大量库和一些标准的数据模型,提供了一系列高效地操作大型数据集所需的工具。 |
数据可视化 | matplotlib | 数据可视化库,提供了大量专业数据图形制作工具。 |
数据可视化 | pyecharts | 数据可视化库,生成百度Echarts图形,动态效果好,数据易处理,易于集成。 |
数据可视化 | ggplot | 类似于R中的图形展示 |
标准模型库 | scikit-learn | 标准机器学习库,主要用于分类、回归、聚类等经典数据挖掘模型。 |
标准模型库 | statsmodels | 标准统计模型库。假设检验和参数置信区间分析等。 |
标准模型库 | Spark ML | 分布式机器学习算法库,可以用在分布式集群上,对大数据进行建模。由Scala开发,提供Python API。 |
标准模型库 | TensorFlow | 成熟的深度学习算法库,由Google开发并开源。支持GPU运算。 |
文本处理 | NLTK | 提供了一批简单易用的自然语言文本处理功能,支持多种语言处理。 |
文本处理 | pypdf2 | 生成、读取 PDF 文件。 |
文本处理 | python-docx | 生成、读取 word 文件。 |
文本处理 | pkuseg | 大分词模块。 |
文本处理 | pyltp | 哈工大分词模块。 |
文本处理 | jieba | 有可能是最早的 Python 中文分词组件。 |
文本处理 | Gensim | 支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法。 |
图片处理 | opencv | opencv for python,里面包含很多图像处理的函数和算法。 |
图片处理 | PIL | 处理图片文件的模块包。 |
图片处理 | pytesseract | 从图片中提取文字(OCR) |
语音处理 | pyaudio | 使用麦克风输入音频。 |
语音处理 | pyspeech | 提供语音和文字互转的功能。 |
人生苦短,我用Python!