使用Python进行数据科学为您提供了以有意义和启发性的方式解析、解释和组织数据的潜力。数据科学是计算中一个令人兴奋的新领域,它建立在分析、可视化和关联以解释我们的计算机收集的有关世界的信息的基础上。当然,称其为“新”领域有点虚伪,因为该学科源自统计学、数据分析和常见的旧科??学观察。但数据科学是这些学科的正式分支,有自己的流程和工具,可以广泛应用于以前从未产生过无法管理的大量数据的学科(如视觉效果)。数据科学是重新审视海洋学、气象学、地理学、制图学、生物学、医学和健康以及娱乐业数据并更好地理解模式、影响和因果关系的新机会。与其他看似包罗万象的大型领域一样,知道从哪里开始探索数据科学可能会让人望而生畏。有许多资源可以帮助数据科学家使用他们最喜欢的编程语言实现他们的目标,其中包括一种流行的语言:Python。使用Pandas、Matplotlib和Seaborn等库,您可以学习数据科学的基本工具集。如果你对Python的基本用法不是很熟悉,请在继续之前阅读我的Python介绍。创建Python虚拟环境程序员有时会忘记他们的开发计算机上安装了哪些库,这可能导致他们提供的代码可以在自己的计算机上运行,??但由于缺少库而无法在所有其他计算机上运行。Python有一个旨在避免这种令人不快的意外的系统:虚拟环境。虚拟环境会故意忽略您安装的任何Python库,有效地迫使您首先使用普通Python进行开发。要使用venv激活虚拟环境,请为您的环境命名(我将使用示例)并使用以下命令创建它:$python3-mvenvexample在环境的源bin目录中导入激活文件以激活它:$source./example/bin/activate(example)$你现在“在”你的虚拟环境中。这是一个干净的状态,您可以在其中为问题构建自定义解决方案,但需要有意识地安装依赖库的额外负担。安装Pandas和NumPy您必须在新环境中安装的第一个库是Pandas和NumPy。这些库在数据科学中很常见,因此您一定要不时安装它们。Pandas是BSD许可下的开源库,可以轻松操作数据结构进行分析。它依赖于NumPy,这是一个提供多维数组、线性代数和傅立叶变换等的科学库。使用pip3安装两者:(示例)$pip3installpandas安装Pandas也会安装NumPy,因此您无需同时指定两者。一旦将它们安装到虚拟环境中,安装包就会被缓存起来,这样当您再次安装它们时,就不必从互联网上下载它们了。这些是您现在唯一需要的库。接下来,您需要一些样本数据。生成样本数据集数据科学就是关于数据的,幸运的是,科学、计算和政府组织提供了许多免费和开放的数据集。虽然这些数据集是很好的教育资源,但它们包含的数据比这个简单示例所需的数据要多得多。您可以使用Python快速创建示例和可管理的数据集:#!/usr/bin/envpython3importrandomdefrgb():NUMBER=random.randint(0,255)/255returnNUMBERFILE=open('sample.csv','w')FILE.write('"red","green","blue"')forCOUNTinrange(10):FILE.write('\n{:0.2f},{:0.2f},{:0.2f}'.format(rgb(),rgb(),rgb()))这将生成一个名为sample.csv的文件,该文件由随机生成的浮点数组成,此示例中表示RGB值(通常是数百个跟踪值)视觉效果)。您可以使用CSV文件作为Pandas的数据源。使用Pandas提取数据Pandas的基本特性之一是能够提取和处理数据,而无需程序员编写新函数来解析输入。如果您习惯于自动执行此操作的应用程序,这可能看起来不是很特别,但想象一下在LibreOffice中打开一个CSV并且必须编写一个公式来拆分每个逗号处的值。Pandas可以保护您免受此类低级操作的影响。下面是一些可用于提取和打印逗号分隔值文件的简单代码:#!/usr/bin/envpython3frompandasimportread_csv,DataFrameimportpandasaspdFILE=open('sample.csv','r')DATAFRAME=pd.read_csv(FILE)print(DATAFRAME)前几行导入Pandas库的组件。Pandas库功能丰富,因此在查找本文基本功能以外的功能时,您通常会参考其文档。接下来,通过打开您创建的sample.csv文件来创建变量FILE。Pandas模块read_csv(在第二行中导入)使用此变量创建数据框dataframe。在Pandas中,数据框是二维数组,通常可以被认为是表格。一旦数据位于数据框中,您就可以操作列和行、查询范围等。目前,示例代码只是将该数据帧输出到终端。运行代码。您的输出看起来与下面的略有不同,因为数字是随机生成的,但格式是相同的。(example)$python3./parse.pyredgreenblue00.310.960.4710.950.170.6420.000.230.5930.220.160.4240.530.520.1850.760.800.2860.680.690.4670.750.520.2780.530.760.9690.010.810.79假设你只需要数据集中的红色值(red),你可以通过声明dataframe的列名并有选择地只打印你感兴趣的列来做到这一点:frompandasimportread_csv,DataFrameimportpandasaspdFILE=open('sample.csv','r')DATAFRAME=pd.read_csv(FILE)#definecolumnsDATAFRAME.columns=['red','green','blue']print(DATAFRAME['red'])现在运行代码,你只会得到红色列:(example)$python3./parse.py00.3110.9520.0030.2240.5350.7660.6870.7580.5390.01Name:red,dtype:float64使用数据表是经常使用Pandas解析数据的好方法。从DataFrame中选择数据的方法有很多种,您尝试的次数越多,您就会越习惯。可视化您的数据许多人更喜欢视觉信息,这已经不是什么秘密了,这就是为什么图表和图形是与高层管理人员会面的主要内容,也是为什么“信息图表”在媒体??上如此受欢迎的原因。数据科学家的工作之一是帮助其他人理解大量数据样本,并且有一些图书馆可以帮助您完成这项任务。将Pandas与可视化库结合使用以对数据进行可视化解释。一个流行的可视化开源库是Seaborn,它基于开源Matplotlib。安装Seaborn和Matplotlib你的Python虚拟环境还没有Seaborn和Matplotlib,所以用pip3安装它们。安装Seaborn时,您还会安装Matplotlib和许多其他库。(例子)$pip3installseaborn为了让Matplotlib显示图形,还必须安装PyGObject和Pycairo。这涉及编译代码,只要您安装了所需的标头和库,pip3就可以为您完成。您的Python虚拟环境不知道这些依赖项,因此您可以在环境内部或外部执行安装命令。在Fedora和CentOS上:(示例)$sudodnfinstall-ygcczlib-develbzip2bzip2-develreadline-devel\sqlitesqlite-developenssl-develtk-develgitpython3-cairo-devel\cairo-gobject-develgobject-introspection-devel在Ubuntu和Debian上:(示例)$sudoaptinstall-ylibgirepository1.0-devbuild-essential\libbz2-devlibreadline-devlibssl-devzlib1g-devlibsqlite3-devwget\curlllvmlibncurses5-devlibncursesw5-devxz-utilstk-devlibcairo2-dev一旦安装了这些,您就可以安装Matplotlib所需的GUI组件。(示例)$pip3installPyGObjectpycairo使用Seaborn和Matplotlib可视化图形在您最喜欢的文本编辑器中创建一个名为vizualize.py的文件。要创建数据的折线图可视化,首先,您必须导入必要的Python模块-前面代码示例中使用的Pandas模块:#!/usr/bin/envpython3frompandasimportread_csv,DataFrameimportpandasaspd接下来,导入Seaborn、Matplotlib和Matplotlib的几个组件,以便您可以配置生成的图形:在桌面上。对于此示例,将输出发送到桌面是有意义的,因此Matplotlib后端必须设置为GTK3Agg。如果您不使用Linux,则可能需要使用TkAgg后端。设置GUI窗口后,设置窗口大小和Seaborn默认样式:matplotlib.use('GTK3Agg')rcParams['figure.figsize']=11,8sns.set_style('darkgrid')现在,您的显示已配置,代码已经很熟悉了。使用Pandas导入sample.csv文件并定义数据框的列:FILE=open('sample.csv','r')DATAFRAME=pd.read_csv(FILE)DATAFRAME.columns=['red','green','blue']使用正确格式的数据,您可以将其绘制成图表。使用每一列作为绘图的输入,然后使用plt.show()在GUI窗口中绘制图形。plt.legend()参数将列标题与图表上的每一行相关联(loc参数将图例置于图外而不是图上方):legend(bbox_to_anchor=(1,1),loc=2,borderaxespad=1)plt.show()运行代码得到结果。数据可视化你的图表准确地显示了CSV文件中包含的所有信息:值在Y轴上,索引号在X轴上,图表中的线条被标记,所以你知道它们代表什么。然而,由于这段代码正在跟踪颜色值(至少假装是),线条的颜色不仅不直观,而且违反直觉。如果您从未分析过颜色数据,您可能永远不会遇到这个问题,但您肯定会遇到类似的问题。在可视化数据时,您必须考虑呈现数据的方法,以防止查看者从您呈现的内容中推断出错误信息。要解决此问题(并显示一些可用的自定义设置),以下代码为每条绘图线指定特定颜色:importmatplotlibfrompandasimportread_csv,DataFrame'GTK3Agg')rcParams['figure.figsize']=11,8sns.set_style('whitegrid')FILE=open('sample.csv','r')DATAFRAME=pd.read_csv(FILE)DATAFRAME。columns=['red','green','blue']plt.plot(DATAFRAME['red'],'r-')plt.plot(DATAFRAME['green'],'g-')plt.plot(DATAFRAME['blue'],'b-')plt.plot(DATAFRAME['red'],'ro')plt.plot(DATAFRAME['green'],'go')plt.plot(DATAFRAME['blue'],'bo')plt.show()这使用特殊的Matplotlib符号为每一列创建两个图。每列的初始图都分配了一种颜色(r代表红色,g代表绿色,b代表蓝色)。这些是内置的Matplotlib设置。-表示一条实线(双破折号,例如r--,将创建一条虚线)。用相同的颜色为每一列创建第二个图,但使用o表示点或节点。为了演示内置的Seaborn主题,将sns.set_style的值更改为whitegrid。改进的数据可视化停用你的虚拟环境在探索Pandas和绘图之后,你可以使用停用命令停用Python虚拟环境:(示例)$deactivate$当你想再次使用它时,只需像开始时那样重新启动它文章。只需激活它。重新激活虚拟环境时,你必须重新安装模块,但它们是从缓存中安装的,而不是从互联网上下载的,所以你不必在线。无限可能Pandas、Matplotlib、Seaborn和数据科学的真正力量是无限的潜力,使您能够以有意义和有启发性的方式解析、解释和组织数据。下一步是使用您在本文中学到的新工具探索简单的数据集。Matplotlib和Seaborn不仅仅有折线图,所以尝试创建条形图或饼图或其他完全不同的东西。数据科学是一种寻找隐藏在数据中的故事的新方法。让开源成为你的媒介。
