Anaconda和conda——关于python的数据科学开发环境,数据科学必备的十大Python库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Anaconda和conda——关于python的数据科学开发环境,数据科学必备的十大Python库相关的知识,希望对你有一定的参考价值。


1、什么是anaconda?

  • Anaconda是一个免费开源的Python和R语言的发行版本
    如果把Python类比成Linux,那么Anaconda就是centos、ubuntu。
    换句话说,Anaconda就是一个整合了python及一系列pip包的第三方软件,类似于Web开发的LNMP一键安装之类的
  • Anaconda主要用于计算科学(数据科学、机器学习、大数据处理和预测分析)
    它支持 Linux、Mac、Windows系统,可用超过600个python数据科学库(约 500 MB)
  • Anaconda的优点:
    第一:提供了包管理功能,Windows 平台安装第三方包经常失败的场景得以解决
    第二:提供环境管理的功能,功能类似 Virtualenv,解决了多版本Python并存、切换的问题。
  • Anaconda使用conda代替pip作为包管理工具
    2012年发布的跨平台包管理软件conda ,是在数据分析界和Numpy和Scipy一样受欢迎的python工具。
    conda作为一种包管理工具,支持包括python在内的R,Ruby,Lua,Scala,Java,javascript,C / C ++等一些列语言软件包、依赖项和环境管理系统的管理。
    Conda可以快速安装、运行和更新软件包及其依赖项。Conda可以轻松地在本地计算机上的环境中创建,保存,加载和切换。
    可以使用 ​​pip install conda​​一键安装。

Anaconda和conda——关于python的数据科学开发环境,数据科学必备的十大Python库_ci

2、如何使用Anaconda

一般把这些数据科学库分为四大类:基础库(jupyter、pandas、numpy、scipy),机器学习库(sikit-learn、nltk、keras、tensorflow、pytorch),可视化库(matplotlib、seaborn、plotly)、拓展计算库(numba、dask、pyspark)

Anaconda和conda——关于python的数据科学开发环境,数据科学必备的十大Python库_ci_02

你可以使用Anaconda研究数据处理、数据建模、机器学习、神经网络、自然语言处理、可视化展示、教学等等等。

常用数据科学库介绍:

基础库

1、NumPy

  • NumPy是一个主要用于数据分析、科学计算和数据科学 的Python库。NumPy主要支持多维数组和矩阵
  • 它是许多库的基础,例如机器学习的 SciPy 和 scikit-learn。NumPy 有助于对数组及其向量化进行数学运算,这可以提高性能和执行时间。

2、Pandas

  • Pandas适合整理和合并数据。 Pandas主要用于轻松快速地进行数据处理,数据聚合和数据可视化。
  • Pandas 允许您从不同的文件格式(例如 CSV,JSON,SQL 和 Microsoft Excel)导入数据。它基于两个主要数据结构:“Series”(一维)和 “DataFrame”(二维)。
  • 数据框与统计软件(例如 Excel 和 SPSS)中的表非常相似。Pandas 允许执行各种数据操作,例如处理和填补缺失的数据,建立索引,从数据框中添加和删除列,合并,重塑,选择等……

3、SciPy

  • SciPy(Scientific Python)是用于高级科学计算的另一个核心库。它基于 NumPy 构建,并扩展了其功能,提供了许多友好且高效的模块,用于科学和数值计算。
  • SciPy 包含处理数据集成,数据优化,数据插值,数据修改,线性代数,概率论,随机数生成,积分演算,傅立叶变换等的模块

4、jupyter

  • Jupyter Notebook是一个基于浏览器的交互式编程环境,它主要构建在IPython等开源库上,允许我们在浏览器上运行交互式python代码
  • 能让用户将说明文本、数学方程、代码和可视化内容全部组合到一个易于共享的文档中。它可以直接在代码旁写出叙述性文档,而不是另外编写单独的文档。也就是它可以能将代码、文档等这一切集中到一处,让用户一目了然。

机器学习库

1、Scikit-Learn

  • Scikit-Learn 是一个免费的机器学习 Python 库,用于数据挖掘任务和建模(例如回归,分类和聚类)
  • 它包含监督和非监督算法,例如决策树,SVM,朴素贝叶斯,随机森林,交叉验证,k 均值聚类等。NumPy,SciPy,Matplotlib,Pandas都支持 Scikit-Learn。

2、TensorFlow

  • TensorFlow 是 Google 为机器学习和深度学习开发的流行框架。TensorFlow 可以有效地进行数据分类和预测。它是完成自然语言处理,对象识别,语音识别,运动检测等任务的最佳工具。
  • 使用 TensorFlow,您可以轻松构建和训练机器学习模型。它还允许您在云,浏览器或本地计算机上的任何位置部署机器学习模型。大型公司如 Google,Twitter,可口可乐,Airbnb 等都在使用 TensorFlow。

3、Keras

  • Keras 是用于训练和构建神经网络和建模的库。与同时提供高级和低级 API 的 TensorFlow 不同,Keras 仅提供高级 API。
  • Keras 可以使你**在深度神经网络中更轻松地处理不同类型的图像和文本数据。**它可以与 TensorFlow,Theano 等库一起使用。

4、nltk

  • NLTK 是一组库,一个用于自然语言处理的完整平台。在 NLTK 的帮助下,你可以以各种方式处理和分析文本,对文本进行标记和标记,提取信息等。NLTK 也用于原型设计和建立研究系统。

5、pytorch

  • PyTorch 是一个大型框架,它允许使用 GPU 加速执行张量计算,创建动态计算图并自动计算梯度
  • 在此之上,PyTorch 为解决与神经网络相关的应用程序提供了丰富的 API。该库基于 Torch,是用 C 实现的开源深度学习库。

可视化库

1、seaborn

  • Seaborn 是基于 Matplotlib 构建的高级数据可视化库,该库与 NumPy 和 Pandas 数据结构集成在一起。它用作绘制引人入胜的统计图形,热图和其他类型的可视化数据。它有着丰富的可视化库,包括一些复杂的类型,例如时间序列,联合图和小提琴图。
  • Seaborn 的数据图形可以包括条形图和直方图,饼图,散点图等。Seaborn 还可以用于确定变量之间的关系(相关性),为因变量绘制线性回归模型,查看和观察分类变量等。

2、matplotlib

  • Matplolib是另一个用于数据可视化的有用Python库。描述性分析和可视化数据对任何组织都是非常重要的。Matplotlib提供了各种方法来有效地可视化数据。
  • Matplotlib允许您快速制作线形图、饼状图、直方图和其他专业级图形。 使用Matplotlib,可以定制图形的每个方面。Matplotlib具有缩放、规划和以图形格式保存图形等交互式功能。

3、plotly

  • Plotly python库 (plotly.py)是一个交互性的开源绘图库。它支持超过40种不同的图标类型,广泛涵盖了统计,金融,地理,科学和3维的用户用例
  • 因为它基于Plotly JavaScript库(plotly.js),plotly.py支持Python用户创建漂亮的交互性的基于网络的可视化,并可以在Jupyter Notebooks内展示,保存为独立的html文件,或者作为一个使用Dash的纯Python开发的网络应用的一部分。

拓展计算库(numba、dask、pyspark)

1、Scrapy

  • Scrapy是一个Python框架,广泛用于Web抓取。
  • Scrapy被广泛用于提取,存储和处理大量Web数据。 Scrapy使我们能够轻松处理大量数据。

2、BeautifulSoup

  • 如果想要提取些数据出来,那么 BeautifulSoup 正是你所需要的,可以用它在网页中提取内容。

3、Requests

  • Requests 是 Python 中为人们搭建的优雅而简单的 HTTP 库。作为一名数据科学家,你或许需要从网上采集数据,而Requests 则为你提供了强大的工具。

4、dask

  • Dask是一个开源项目,它允许开发者与scikit-learn、pandas和NumPy合作开发他们的软件。它是一个非常通用的工具,可以处理各种工作负载。
  • 这个工具包括两个重要的部分;动态任务调度和大数据收集。前面的部分与Luigi、芹菜和气流非常相似,但它是专门为交互式计算工作负载优化的。

5、numba

  • Numba是一个库,可以在运行时将Python代码编译为本地机器指令,而不会强制大幅度的改变普通的Python代码。翻译/魔术是使用LLVM编译器完成的,该编译器是相当活跃的开源社区开发的。
  • 在计算性能方面,它比Numpy表现的更好。

6、pyspark

  • 它是由python和spark组合使用的。它进行内存计算以实时分析数据。由于 Apache Hadoop MapReduce 仅执行批处理并且缺乏实时处理功能,因此它开始出现。
  • 因此,引入了Apache Spark,因为它可以实时执行流处理,也可以处理批处理。

7、Statsmodels

  • Statsmodels 是 Python 中一个强大的统计分析包 ,包含了回归分析、时间序列分析、假设检验等等的功能。
  • Statsmodels 在计量的简便性上是远远不及 Stata 等软件的,但它的优点在于可以与 Python 的其他的任务(如 NumPy、Pandas)有效结合,提高工作效率。

3、配套IDE工具Spyder

可以看到Spyder的界面设计和matlab十分地相似,熟悉matlab的同学可以很快地习惯使用Spyder,但也有些许不同。

1.首先是快捷键,一般来说调试的快捷键会设置为F5,它的调试是Ctrl+F5,还有逐步调试也不一样,总之为了方便,把调试快捷键改成了习惯的方式。修改的方法是工具栏上的TOOL->Preferences->Keyboard shortcuts,然后相应地对快捷键进行修改。
2.其次是断点的设置方式,一般来说断点是点击一次编辑区旁边的竖条,但是Spyder是两次,取消也是连击两次,个人非常不能理解为什么要这么设置。当然你也可以直接选择断点的快捷键,默认快键键是Ctrl+F12,我给改成了F12。
3.代码提示,matlab的代码提示是输入函数的前几个字母然后按tab键,python则是先写个.然后按tab键。如果是创建的对象就直接写个.就有代码提示了。

Spyder有三个“工作空间”(功能窗格),分别是代码编辑,变量查看和控制台Shell。

Anaconda和conda——关于python的数据科学开发环境,数据科学必备的十大Python库_python_03

下面的代码导入第三方库matplotlib和numpy,生成一组正态分布的数据a,并绘制a的直方图。
点击运行,我们可以在控制台看到程序运行成功,查看变量管理器窗格,看到变量a已经生成。如上图所示:

import matplotlib.pyplot as plt
import numpy as np

a = np.random.normal(size=10000)
plt.hist(a)


以上是关于Anaconda和conda——关于python的数据科学开发环境,数据科学必备的十大Python库的主要内容,如果未能解决你的问题,请参考以下文章

关于conda-新手必读

关于anaconda3的conda命令在使用过程中突然失效

Anaconda-用conda创建python虚拟环境

如何在vs2017管理anaconda的python包

python3.9(anaconda)+pytorch(GPU)

关于python3 OpenCV的安装和配置