雷锋网AI科技评论按,大多数有抱负的数据科学家是通过学习为开发人员开设的编程课程开始认识python的,他们也开始解决类似leetcode网站上的python编程难题。他们认为在开始使用python分析数据之前,必须熟悉编程概念。
资深数据分析师ManuJeevan认为,这是一个巨大的错误,因为数据科学家使用python来对数据进行检索、清洗、可视化和构建模型,而不是开发软件应用程序。实际上,为了完成这些任务,你必须将大部分时间集中在学习python中的模块和库上。他认为,学习数据科学的正确姿势应该如下文,雷锋网AI科技评论编译整理。
请按照下面这个步骤来学习数据科学的python。
配置编程环境
JupyterNotebook是开发和展示数据科学项目的强大编程环境。
在电脑上安装JupyterNotebook最简单的方法是通过Anaconda进行安装。Anaconda是数据科学中使用最广泛的python工具,它预装了所有最流行的库。
你可以浏览标题为「ABeginner’sGuidetoInstallingJupyterNotebookUsingAnacondaDistribution」的博客文章,了解如何安装Anaconda。安装Anaconda时,请选择最新的python3版本。
安装完Anaconda后,请阅读CodeAcademy的这篇文章,了解如何使用JupyterNotebook。
只学习python的基础知识
CodeAcademy有一门关于python的优秀课程,大约需要20个小时才能完成。你不必升级到pro版本,因为你的目标只是熟悉python编程语言的基础知识。
NumPy和Pandas,学习的绝佳资源
在处理计算量大的算法和大量数据时,python速度较慢。你可能会问,既然如此那为什么python是数据科学最流行的编程语言?
答案是,在python中,很容易以C或Fortran扩展的形式将数字处理任务转移到底层。这正是NumPy和Pandas所做的事情。
首先,你应该学会NumPy。它是用python进行科学计算的最基本的模块。NumPy支持高度优化的多维数组,这是大多数机器学习算法最基本的数据结构。
接下来,你应该学习Pandas。数据科学家花费大部分时间清洗数据,这也被称为数据整。
Pandas是操作数据最流行的python库。Pandas是NumPy的延伸。Pandas的底层代码广泛使用NumPy库。Pandas的主要数据结构称为数据帧。
Pandas的创造者WesMcKinney写了一本很棒的书,叫做《PythonforDataAnalysis》。在书中的第4、5、7、8和10章可以学习Pandas和NumPy。这些章节涵盖了最常用的NumPy和Pandas特性来处理数据。
学习使用Matplotlib可视化数据
Matplotlib是用于创建基本可视化图形的基本python包。你必须学习如何使用Matplotlib创建一些最常见的图表,如折线图、条形图、散点图、柱状图和方框图。
另一个建立在Matplotlib之上并与Pandas紧密结合的好的绘图库是Seaborn。在这个阶段,我建议你快速学习如何在Matplotlib中创建基本图表,而不是专注于Seaborn。
我写了一个关于如何使用Matplotlib开发基本图的教程,该教程由四个部分组成。
第一部分:Matplotlib绘制基本图第二部分:如何控制图形的样式和颜色,如标记、线条粗细、线条图案和使用颜色映射第三部分:注释、控制轴范围、纵横比和坐标系第四部分:处理复杂图形你可以通过这些教程来掌握Matplotlib的基本知识。
简而言之,你不必花太多时间学习Matplotlib,因为现在公司已经开始采用Tableau和Qlik等工具来创建交互式可视化。
如何使用SQL和python
数据有组织地驻留在数据库中。因此,你需要知道如何使用SQL检索数据,并使用python在JupyterNotebook中执行分析。
数据科学家使用SQL和Pandas来操纵数据。有一些数据操作任务使用SQL就可以很容易地执行,并且有一些任务可以使用Pandas高效地完成。我个人喜欢使用SQL来检索数据并在Pandas中进行操作。
如今,公司使用ModeAnalytics和Databricks等分析平台来轻松地使用python和SQL。
所以,你应该知道如何一起有效地使用SQL和python。要了解这一点,你可以在计算机上安装SQLite数据库,并在其中存储一个CSV文件,然后使用python和SQL对其进行分析。
这里有一篇精彩的博客文章,向你展示了如何做到这一点:ProgrammingwithDatabasesinPythonusingSQLite。
在浏览上述博客文章之前,你应该了解SQL的基础知识。ModeAnalytics上有一个很好的关于SQL的教程:IntroductiontoSQL。通过他们的基本SQL部分,了解SQL的基本知识,每个数据科学家都应该知道如何使用SQL有效地检索数据。
学习和python相关的基本统计学知识
多数有抱负的数据科学家在不学习统计学的基础知识的情况下,就直接跳到机器学习知识的学习中。
不要犯这个错误,因为统计学是数据科学的支柱。而且,很多数据科学家学习统计学只是学习理论概念,而不是学习实践概念。
我的意思是,通过实践概念,你应该知道什么样的问题可以用统计学来解决,了解使用统计数据可以解决哪些挑战。
以下是你应该了解的一些基本统计概念:
抽样、频率分布、平均值、中位数、模式、变异性度量、概率基础、显著性检验、标准差、z评分、置信区间和假设检验(包括A/B检验)。
要学习这些知识,有一本很好的书可以看看:《PracticalStatisticsforDataScientists:50EssentialConcepts》。不幸的是,本书中的代码示例是用R编写的,但是很多人包括我自己在内使用的是Python。
我建议你阅读本书的前四章。阅读本书的前4章,了解我前面提到的基本统计概念,你可以忽略代码示例,只了解这些概念。本书的其余章节主要集中在机器学习上。我将在下一部分讨论如何学习机器学习。
大多数人建议使用ThinkStats来学习python的统计知识,但这本书的作者教授了自己的自定义函数,而不是使用标准的python库来进行统计知识讲解。因此,我不推荐这本书。
接下来,你的目标是实现在Python中学习的基本概念。StatsModels是一个流行的python库,用于在python中构建统计模型。StatsModels网站提供了关于如何使用Python实现统计概念的优秀教程。
或者,你也可以观看GalVaroquaux的视频。他向你展示了如何使用Pandas和统计模型进行推理和探索性统计。
使用Scikit-Learn进行机器学习
Scikit-Learn是Python中最流行的机器学习库之一。你的目标是学习如何使用ScikitLearn实现一些最常见的机器学习算法。
你应该像下面这样做。
首先,观看AndrewNg在Coursera上的机器学习课程的第1、2、3、6,、7和第8周视频。我跳过了关于神经网络的部分,因为作为初学者,你必须