一文惊醒梦中人:Python是打开数据科学大门的钥匙 - 思路、心态【附库、练习资源链接】

本文价值在于梳理Python对于数据科学的作用以及入门分析,也提供了一系列的书目以及网站学习资源,给到我们整个学习流程的轮廓,还是不错的。正文如下:

您正在踏上数据科学之旅,每个人都建议您从学习如何编写代码开始。
您决定使用Python,现在被您可以使用的大量学习资源所麻痹。也许您已经不知所措,并且由于分析瘫痪,您正在推迟学习如何使用Python编写代码的第一步。

原文参考:How to Master Python for Data Science
作者: Chanin Nantasenamat

有添加和删减,酌情参考。

在本文中,我将作为您的向导,带领您探索掌握Python入门所需的基本知识。我将假设您以前没有编码经验,或者您可能来自非技术背景。但是,如果您具有技术或计算机科学背景,并且熟悉以前的编程语言,并且希望过渡到Python,那么您可以将本文作为高级概述来了解Python语言的要点。无论哪种方式,本文的目的都是引导您了解Python语言与数据科学的交叉点,这将帮助您快速入门。

1. 为什么选Python?

您可能遇到的第一个(也是著名的)问题是:

你应该学习什么编程语言?

在互联网上做了一些研究后,您可能会因为以下原因决定使用 Python:

  • Python 是一种解释性的高级编程语言,具有可读性和易于理解的语法
  • Python 拥有丰富的 Python 学习资源
  • 根据Python 软件基金会和 JetBrains 进行的2020 年 Python 开发人员调查, Python 具有高度通用性和多种用例
  • Python 拥有大量用于执行各种操作和任务的库
  • 根据TIOBE 指数和Stack Overflow 开发人员调查, Python 是一种流行语言
  • Python 是一种备受雇主追捧的技能

2. Python 应用案例

您可能会遇到的另一个问题是:

Python 究竟将如何帮助您的数据科学项目?

为了回答这个问题,让我们考虑如下所示的数据生命周期。本质上有5个主要步骤,包括数据收集、数据清洗、探索性数据分析、模型构建和模型部署。所有这些步骤都可以在 Python 中实现,一旦编码,生成的代码是可重用的,因此可以重新用于其他相关项目。
数据科学生命周期
可以简单速记为:CCEMM生命周期模型

除了数据分析、数据科学和数据工程之外,Python 的强大多功能性使其可以应用于无限的可能性,包括自动化、机器人技术、网络开发、网络抓取、游戏开发和软件开发。此外,几乎所有我们能想到的领域都在使用 Python,包括但不限于航空航天、银行、商业、咨询、医疗保健、保险、零售和信息技术(请参阅 ActiveState 制作的数据表,关于Python 使用的前 10 名)案例)。

3. 学习 Python 的心态

3.1. 你为什么学习 Python?

弄清楚你为什么学习 Python 可能会帮助你在生活遇到障碍时保持动力。当然,保持一致性和良好的习惯,可能只能让你走到这一步。(你需要)有一个明确的学习理由,可能有助于激发你的动力并引导你回到正轨。

3.2. 不要害怕失败或犯错

学习任何新的技术/技能的一个重要部分,是深入掌握学习方法。不要害怕失败或陷入困境,因为这些都是不可避免的。请记住,如果你没有被卡住,你就没有在学习!我一直喜欢通过犯尽可能多的错误来学习新事物,好处是学到的宝贵经验教训可用于第二次解决它。
事实上,我从 Daniel Bourke 的一篇博客中了解到OODA 循环,我们越快迭代这个循环,我们就越能更好地实现预期目标。
OODA循环
OODA 循环代表观察、定位、决定和行动,它最初是由美国空军上校约翰博伊德设计的用于战斗的军事战略。关键是速度,为了达到这个速度,循环中的迭代必须进行得更快。因此,当应用于实施编码项目时,我们越快迭代 OODA 循环,我们就会学到越多。

3.3. 学习如何学习

有大量的学习资源可用于学习 Python。根据与您产生共鸣的方法,选择能够最大限度地发挥您的学习潜力的方法。

3.3.1. 阅读

如果您喜欢阅读,那么您可以从几本很棒的书籍和书面教程中学习 Python。

→ Python Basics: A Practical Introduction to Python 3
→ Automate the Boring Stuff with Python: Practical Programming for Total Beginners
→ Python Crash Course: A Hands-On, Project-Based Introduction to Programming

在数据科学和机器学习的上下文中使用 Python 的一些好书如下:
→ Python Data Science Handbook: Essential Tools for Working with Data
→ Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython
→ Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems

以上链接都是亚马逊的,所以还是根据各人需要看看是否有翻译的中文版本

3.3.2. 视频

也许您更像是一个视觉人士,然后有很多很棒的 YouTube 频道可以教授概念和实用教程。其中包括:
freeCodeCamp, Data Professor, Coding Professor, CD Dojo, Corey Schafer, Tech with Tim, Python Programmer, Data School, Keith Galli, Kylie Ying and Programming with Mosh.

仅供参考,国内也有很多课程,不需要翻过去看。

3.3.3. 项目
没有什么比边做边学更好的了。这也是将您的学习推向极限的最佳方式。Kaggle上可用的大量数据集是一个很好的起点,可以为您开始自己的项目获得灵感。Coursera的Guided Projects也是在课程导师的指导下实施项目的另一种方式。如果您正在接受现场培训,Data Science Dojo 有一个Python for Data Science入门课程,可以在一周内完成。

3.4. 从遵循编码教程转变为实施您自己的项目

能够成功地遵循教程和能够从头开始实施自己的项目是两件不同的事情。当然,对于前者,您可以成功地遵循本教程的每个步骤,但是当您必须自己弄清楚使用哪种方法或使用哪些库/函数时,您可能会屈服于挑战并陷入困境。
那么,您究竟如何才能从编码教程的追随者转变为真正能够实施自己的项目呢?在下一节中了解。

3.5. 学习解决问题

答案很简单。你必须开始做项目。多多益善。随着您从许多项目中积累经验,您将获得与问题解决和问题框架相关的技能。

要开始,请按照以下过程操作:

  1. 选择一个有趣的问题来解决。
  2. 了解问题。
  3. 将问题分解为最小的部分。
  4. 实现小部件。接下来,将这些部分的结果拼凑起来,从整体上看它们是否解决了问题。
  5. 清洗并重复。

如果您对该主题充满热情或激起您的兴趣,您可能还会发现该项目更具吸引力。环顾四周,您对哪些主题感兴趣,并想一想您想了解更多。例如,如果您是 YouTube 内容创作者,您可能会发现分析您的内容的表现(例如观看次数、观看时间、观看时间、视频点击率等)很有趣。

3.6. 不要重新发明轮子

您应该熟悉使用 Python 函数来执行各种任务。简而言之,在PyPI、conda或GitHub 上提供的数千个 Python 库预先配备了广泛的功能,您可以立即使用。
这些函数的本质是它通常接受输入参数,用于在返回输出之前执行预定义的任务或任务集。运行函数时可以明确指定输入参数,但如果未指定,则 Python 假定您正在使用一组默认参数。
在开始编写您自己的自定义函数之前,请进行一些谷歌搜索,看看是否已经有一些库中的现有函数执行与您计划实现的功能类似的功能。可能已经有一个现有的函数,您只需要简单地导入和使用即可。

3.7. 学习新库

应该注意的是,如果您熟悉一个库,您也可能会选择其他相关库。例如,如果您已经熟悉 using matplotlib, usingseaborn或plotly应该很容易学习和实现,因为基础已经就位。与深度学习库(例如tensorflow、torch、fastai和mxnet)类似。

3.8. 调试和寻求帮助

当您对项目进行编码并且您的代码抛出错误时,因此您必须学习如何调试代码和解决问题。但是,如果错误超出了您的理解范围,那么您知道如何寻求帮助就非常重要。

你应该问的第一个人是你自己。是的,我知道您可能想知道这将如何运作,因为您现在一无所知。通过问自己,我的意思是你首先尝试自己解决问题,然后再向他人寻求帮助。这很重要,因为它可以显示您的性格和毅力。

那么您究竟如何调试代码和解决问题。

仔细阅读输出,因为错误的原因明确写在输出中。有时,即使是最简单的错误也可能让我们忘记安装一些库或忘记在使用之前先定义变量。

如果你仍然一无所知,现在是时候开始谷歌搜索了。因此,您现在必须学习如何掌握提出正确问题的艺术。如果您使用不相关的关键字询问 Google,您可能在搜索结果中找不到任何有用的答案。最简单的方法是包含与问题相关的关键字。

在搜索查询中,我会使用以下作为关键字

中文表达:<Python 或 R 库的名称> <复制并粘贴错误消息>

是的,基本上就是这样。但是,假设我只想将我的搜索限制在 Stack Overflow,我将site:stackoverflow.com在搜索查询中作为附加语句添加。或者,您可以前往 Stack Overflow 并在那里执行搜索。

3.9 一致性和问责制

在任何学习之旅中反复出现的主题是养成学习习惯,这将帮助您在学习之旅中保持一致。始终如一的编码将使您的动力付诸行动,您使用它的次数越多,您就会变得越熟练。俗话说:

使用它或失去它。 – USE IT OR LOSE IT.

由Ken Jee发起的66 天数据计划是培养良好学习习惯、保持一致性和对学习负责的好方法。参与这项计划非常简单:

  • 每天至少花 5 分钟编码或做数据科学
  • 使用Twitter或Linkedin上的 #66daysofdata 主题标签分享您所做的和学到的。

有点类似于立flag打卡的味道?

4. Python 编码环境

4.1. 集成开发环境

集成开发环境 (IDE) 可以被认为是存放代码的工作空间,不仅如此,它还提供额外的便利和便利,可以增强您的编码过程。
IDE 的基本功能包括语法高亮、代码折叠和括号匹配、项目中文件的路径感知以及运行选定代码块或整个文件的能力。更高级的功能可能包括代码建议/完成、调试工具以及对版本控制的支持。
流行的 Python IDE 包括:
VS Code — 功能强大且高度可定制的 IDE。
PyCharm — 另一个功能强大的 IDE,但可能需要付费订阅才能解锁 Pro 版中可用的所有功能,但社区版提供了良好的标准 IDE。
Spyder — R 和 MATLAB 用户会发现它具有 RStudio/MATLAB 氛围。
Atom — 具有高度可定制的初学者友好界面。

4.2. Jupyter 笔记本

Jupyter笔记本可以在本地安装到您选择的任何操作系统(即无论是在Windows,Linux或Mac OSX),通过pip或conda。

Jupyter 的其他风格是 Jupyterlab,它还为更大和更复杂的项目提供工作区和类似 IDE 的环境。

Jupyter Notebook 的云异常是所有有抱负和实践的数据科学家的福音,因为它使每个人都可以访问强大的计算资源(即CPU 和 GPU 计算)。

这里省略了一些废话

4.3. 有用的插件

代码建议和完成插件(例如Kite提供的插件)为加快编码过程提供了巨大的支持,因为它有助于建议完成代码行。这会派上用场,尤其是当您必须长时间坐着进行编码时。在这里和那里保存的几秒钟可能会随着时间的推移急剧累积。这种代码建议也可以兼作教育或强化工具(即有时我们的思想会因长时间的编码而陷入困境),因为它可能会根据我们编写的代码的上下文建议某些代码块。

5. Python 基础

在本节中,我们将介绍开始使用 Python 所需了解的最低限度。

  • 变量、数据类型和运算符 Variables, Data types and Operators ——这是最重要的,因为几乎所有的项目都会做很多事情。你可以把它想象成有点像字母表,它是你用来拼写单词的积木。定义和使用变量允许您存储值以供以后使用,各种数据类型允许您灵活地使用数据(即无论是定量还是定性的数值或分类数据)。操作员将允许您使用过程和过滤数据。
  • 列表理解和操作 Lists comprehensions and operations ——这对于预处理数据数组很有用,因为数据集本质上是数值或分类值的集合。
  • 循环 Loops ——诸如for和 之类的循环while允许我们遍历数组、列表或数据帧中的每个元素以执行相同的任务。在高层次上,这使我们能够自动处理数据。
  • 条件语句 Conditional statements- if,elif和else允许代码做出决定为适当的路径以操作或处理所述输入数据以继续。如果满足特定条件,我们可以使用它来执行特定任务。例如,我们可以用它来确定输入数据的数据类型是什么,如果是数值我们执行处理任务 A 否则(否则)我们执行处理任务 B。
  • 创建和使用函数 Creating and using functions——函数创建有助于以模块化的方式将类似的处理任务组合在一起,从本质上节省您未来的时间,因为它允许您的代码可重用。
  • 文件处理 File handling——读写文件;创建、移动和重命名文件夹;设置环境路径;通过路径导航等。
  • 错误和异常处理 Error and exception handling——错误是不可避免的,设计正确处理此类错误是防止代码停顿和无法进一步处理的好方法。

6. 用于数据科学的 Python 库

数据处理-pandas是处理常见数据格式的首选库,用于处理一维Series(即可以被认为是 a 的单个列DataFrame)或二维DataFrames(即常见的表格数据集)。

  • 统计分析 Statistical analysis —— statsmodels 是一个库,提供用于统计测试、统计模型以及构建线性回归模型的功能。
  • 机器学习 Machine learning——scikit-learn是构建机器学习模型的首选库。除了模型构建之外,该库还包含示例数据集、用于预处理数据集以及评估模型性能的实用函数。
  • 深度学习 Deep learning——深度学习的流行库包括 TensorFlow (tensorflow) 和 PyTorch (torch)。其他库包括fastaimxnet
  • 科学计算 Scientific computation——scipy是科学和技术计算的首选库,包括积分、插值、优化、线性代数、图像和信号处理等。
  • 数据可视化 Data visualization——有几个用于数据可视化的库,最受欢迎的是matplotlib允许生成范围广泛的图。seaborn是一个替代库,它从 matplotlib 中提取其功能,但生成的图更加精致和吸引人。plotly允许生成交互式绘图。
  • Web应用程序 Web applications—— djangoflask是Web开发以及部署机器学习模型标准的web框架。近年来,最小和更轻量级的替代方案越来越受欢迎,因为它们易于实施。其中一些包括streamlitdashpywebio

7. 编写漂亮的 Python 代码

2001 年,Guido van Rossum、Barry Warsaw 和 Nick Coghlan 发布了一份文档,该文档建立了一套编写 Python 代码的指南和最佳实践,称为PEP8。特别是,PEP 是 Python Enhancement Proposal 的代名词,PEP8 只是发布的众多文档之一。PEP 8 的主要目标是提高 Python 代码的可读性和一致性。
正如 Guido van Rossum 所说:

“代码的阅读次数远多于编写次数”

因此,编写可读的代码就像提前投资它,因为它要么被你未来的自己阅读,要么被其他人阅读。我经常遇到的一个常见情况是我自己或我的同事编写的代码文档很差,但幸运的是我们多年来有所改进。

9. 练习你新发现的 Python 技能

做填字游戏或数独是很好的心理练习,为什么不做同样的事情来测试您的 Python 技能?LeetcodeHackerRank等平台可帮助您学习和练习数据结构和算法,并为技术面试做好准备。数据科学领域的其他类似平台是Interview QueryStrataScratch
Kaggle是有抱负的数据科学家通过参加数据竞赛来学习数据科学的好地方。除此之外,还有大量可供练习的数据集以及大量社区出版的笔记本可供从中汲取灵感。如果您热衷于成为 Kaggler 的佼佼者,Coursera 的课程 如何赢得数据科学竞赛:向顶级 Kaggler 学习可以帮助您。

10. 分享你的知识

由于程序员经常依赖橡皮鸭作为教学工具,他们会尝试向他们解释他们的问题,并且这样做可以让他们获得观点,并且经常找到解决这些问题的方法。
作为有抱负的数据科学家或正在学习新工具的实践数据科学家,最好的学习方式也是将其教授给其他人,正如费曼学习技术所述。
费曼学习术
那么你到底能教什么呢?实际上有很多方法,我在下面列出了:

  • 教一个同事——也许你可以接待一个你可以教的实习生
  • 写博客——博客是一种很好的教学方式,因为有大量的学习者希望通过博客文章来学习新的东西。流行的技术博客平台包括Medium、Dev.to 和 Hashnode。
  • 制作 YouTube 视频——您可以制作视频来解释您正在学习的概念,甚至是展示如何使用特定库、如何构建机器学习模型、如何构建 Web 应用程序的实用教程视频,等等。

11. 为开源项目做贡献

为开源项目做贡献有很多好处。首先,您将能够向该领域的其他专家学习,并从审查其他人的代码中学习(即通过审查问题和拉取请求)。。

审查问题-拉取请求
其次,您还将有机会在贡献代码时熟悉 Git 的使用(即开源项目托管在 GitHub 以及相关平台,如 BitBucket、GitLab 等)。

第三,随着您获得社区和同行的认可,您将能够与社区中的其他人建立联系。您还将对自己的编码能力更有信心。谁知道呢,也许您甚至会创建自己的开源项目!

第四,因为开源项目依赖于自愿贡献的开发人员,所以你要付出代价。为更大的利益做出贡献也可能让您感到满意,因为您正在对社区产生影响。
第五,您还将获得为现实世界的项目做出贡献的宝贵经验,这可能会帮助您在未来找到自己的实习生或工作安置。

贡献并不意味着您必须为项目创建一个大而复杂的增强。您可以首先纠正您可能遇到的一个小错误,这应该会使势头滚动。

一个额外的好处是,当您修复代码时,您还可以提高您的编码和文档技能(即编写可读和可维护的代码)。此外,由此带来的挑战和责任也可能有助于您继续参与编码。

结论

总之,本文探讨了 Python 应用于数据科学的前景。作为一名自学成才的程序员,我知道不仅要学习编码,还要应用它来解决数据问题是多么困难。旅程并不容易,但如果你能坚持下去,你会惊讶于在你的数据科学之旅中使用 Python 可以做多少事情。

我希望本文提供了一些起点,您可以在开始学习之旅时使用这些起点进行调整。请发表评论以提出适合您的任何观点!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极速learner

非常感谢!继续努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值