本文价值在于梳理Python对于数据科学的作用以及入门分析,也提供了一系列的书目以及网站学习资源,给到我们整个学习流程的轮廓,还是不错的。正文如下:
您正在踏上数据科学之旅,每个人都建议您从学习如何编写代码开始。
您决定使用Python,现在被您可以使用的大量学习资源所麻痹。也许您已经不知所措,并且由于分析瘫痪,您正在推迟学习如何使用Python编写代码的第一步。
原文参考:How to Master Python for Data Science
作者: Chanin Nantasenamat
有添加和删减,酌情参考。
在本文中,我将作为您的向导,带领您探索掌握Python入门所需的基本知识。我将假设您以前没有编码经验,或者您可能来自非技术背景。但是,如果您具有技术或计算机科学背景,并且熟悉以前的编程语言,并且希望过渡到Python,那么您可以将本文作为高级概述来了解Python语言的要点。无论哪种方式,本文的目的都是引导您了解Python语言与数据科学的交叉点,这将帮助您快速入门。
您可能遇到的第一个(也是著名的)问题是:
你应该学习什么编程语言?
在互联网上做了一些研究后,您可能会因为以下原因决定使用 Python:
您可能会遇到的另一个问题是:
Python 究竟将如何帮助您的数据科学项目?
为了回答这个问题,让我们考虑如下所示的数据生命周期。本质上有5个主要步骤,包括数据收集、数据清洗、探索性数据分析、模型构建和模型部署。所有这些步骤都可以在 Python 中实现,一旦编码,生成的代码是可重用的,因此可以重新用于其他相关项目。
可以简单速记为:CCEMM生命周期模型
除了数据分析、数据科学和数据工程之外,Python 的强大多功能性使其可以应用于无限的可能性,包括自动化、机器人技术、网络开发、网络抓取、游戏开发和软件开发。此外,几乎所有我们能想到的领域都在使用 Python,包括但不限于航空航天、银行、商业、咨询、医疗保健、保险、零售和信息技术(请参阅 ActiveState 制作的数据表,关于Python 使用的前 10 名)案例)。
弄清楚你为什么学习 Python 可能会帮助你在生活遇到障碍时保持动力。当然,保持一致性和良好的习惯,可能只能让你走到这一步。(你需要)有一个明确的学习理由,可能有助于激发你的动力并引导你回到正轨。
学习任何新的技术/技能的一个重要部分,是深入掌握学习方法。不要害怕失败或陷入困境,因为这些都是不可避免的。请记住,如果你没有被卡住,你就没有在学习!我一直喜欢通过犯尽可能多的错误来学习新事物,好处是学到的宝贵经验教训可用于第二次解决它。
事实上,我从 Daniel Bourke 的一篇博客中了解到OODA 循环,我们越快迭代这个循环,我们就越能更好地实现预期目标。
OODA 循环代表观察、定位、决定和行动,它最初是由美国空军上校约翰博伊德设计的用于战斗的军事战略。关键是速度,为了达到这个速度,循环中的迭代必须进行得更快。因此,当应用于实施编码项目时,我们越快迭代 OODA 循环,我们就会学到越多。
有大量的学习资源可用于学习 Python。根据与您产生共鸣的方法,选择能够最大限度地发挥您的学习潜力的方法。
如果您喜欢阅读,那么您可以从几本很棒的书籍和书面教程中学习 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
以上链接都是亚马逊的,所以还是根据各人需要看看是否有翻译的中文版本
也许您更像是一个视觉人士,然后有很多很棒的 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入门课程,可以在一周内完成。
能够成功地遵循教程和能够从头开始实施自己的项目是两件不同的事情。当然,对于前者,您可以成功地遵循本教程的每个步骤,但是当您必须自己弄清楚使用哪种方法或使用哪些库/函数时,您可能会屈服于挑战并陷入困境。
那么,您究竟如何才能从编码教程的追随者转变为真正能够实施自己的项目呢?在下一节中了解。
答案很简单。你必须开始做项目。多多益善。随着您从许多项目中积累经验,您将获得与问题解决和问题框架相关的技能。
要开始,请按照以下过程操作:
如果您对该主题充满热情或激起您的兴趣,您可能还会发现该项目更具吸引力。环顾四周,您对哪些主题感兴趣,并想一想您想了解更多。例如,如果您是 YouTube 内容创作者,您可能会发现分析您的内容的表现(例如观看次数、观看时间、观看时间、视频点击率等)很有趣。
您应该熟悉使用 Python 函数来执行各种任务。简而言之,在PyPI、conda或GitHub 上提供的数千个 Python 库预先配备了广泛的功能,您可以立即使用。
这些函数的本质是它通常接受输入参数,用于在返回输出之前执行预定义的任务或任务集。运行函数时可以明确指定输入参数,但如果未指定,则 Python 假定您正在使用一组默认参数。
在开始编写您自己的自定义函数之前,请进行一些谷歌搜索,看看是否已经有一些库中的现有函数执行与您计划实现的功能类似的功能。可能已经有一个现有的函数,您只需要简单地导入和使用即可。
应该注意的是,如果您熟悉一个库,您也可能会选择其他相关库。例如,如果您已经熟悉 using matplotlib, usingseaborn或plotly应该很容易学习和实现,因为基础已经就位。与深度学习库(例如tensorflow、torch、fastai和mxnet)类似。
当您对项目进行编码并且您的代码抛出错误时,因此您必须学习如何调试代码和解决问题。但是,如果错误超出了您的理解范围,那么您知道如何寻求帮助就非常重要。
你应该问的第一个人是你自己。是的,我知道您可能想知道这将如何运作,因为您现在一无所知。通过问自己,我的意思是你首先尝试自己解决问题,然后再向他人寻求帮助。这很重要,因为它可以显示您的性格和毅力。
那么您究竟如何调试代码和解决问题。
仔细阅读输出,因为错误的原因明确写在输出中。有时,即使是最简单的错误也可能让我们忘记安装一些库或忘记在使用之前先定义变量。
如果你仍然一无所知,现在是时候开始谷歌搜索了。因此,您现在必须学习如何掌握提出正确问题的艺术。如果您使用不相关的关键字询问 Google,您可能在搜索结果中找不到任何有用的答案。最简单的方法是包含与问题相关的关键字。
在搜索查询中,我会使用以下作为关键字
中文表达:
<复制并粘贴错误消息>
是的,基本上就是这样。但是,假设我只想将我的搜索限制在 Stack Overflow,我将site:stackoverflow.com在搜索查询中作为附加语句添加。或者,您可以前往 Stack Overflow 并在那里执行搜索。
在任何学习之旅中反复出现的主题是养成学习习惯,这将帮助您在学习之旅中保持一致。始终如一的编码将使您的动力付诸行动,您使用它的次数越多,您就会变得越熟练。俗话说:
使用它或失去它。 – USE IT OR LOSE IT.
由Ken Jee发起的66 天数据计划是培养良好学习习惯、保持一致性和对学习负责的好方法。参与这项计划非常简单:
有点类似于立flag打卡的味道?
集成开发环境 (IDE) 可以被认为是存放代码的工作空间,不仅如此,它还提供额外的便利和便利,可以增强您的编码过程。
IDE 的基本功能包括语法高亮、代码折叠和括号匹配、项目中文件的路径感知以及运行选定代码块或整个文件的能力。更高级的功能可能包括代码建议/完成、调试工具以及对版本控制的支持。
流行的 Python IDE 包括:
VS Code — 功能强大且高度可定制的 IDE。
PyCharm — 另一个功能强大的 IDE,但可能需要付费订阅才能解锁 Pro 版中可用的所有功能,但社区版提供了良好的标准 IDE。
Spyder — R 和 MATLAB 用户会发现它具有 RStudio/MATLAB 氛围。
Atom — 具有高度可定制的初学者友好界面。
Jupyter笔记本可以在本地安装到您选择的任何操作系统(即无论是在Windows,Linux或Mac OSX),通过pip或conda。
Jupyter 的其他风格是 Jupyterlab,它还为更大和更复杂的项目提供工作区和类似 IDE 的环境。
Jupyter Notebook 的云异常是所有有抱负和实践的数据科学家的福音,因为它使每个人都可以访问强大的计算资源(即CPU 和 GPU 计算)。
这里省略了一些废话
代码建议和完成插件(例如Kite提供的插件)为加快编码过程提供了巨大的支持,因为它有助于建议完成代码行。这会派上用场,尤其是当您必须长时间坐着进行编码时。在这里和那里保存的几秒钟可能会随着时间的推移急剧累积。这种代码建议也可以兼作教育或强化工具(即有时我们的思想会因长时间的编码而陷入困境),因为它可能会根据我们编写的代码的上下文建议某些代码块。
在本节中,我们将介绍开始使用 Python 所需了解的最低限度。
数据处理-pandas是处理常见数据格式的首选库,用于处理一维Series(即可以被认为是 a 的单个列DataFrame)或二维DataFrames(即常见的表格数据集)。
2001 年,Guido van Rossum、Barry Warsaw 和 Nick Coghlan 发布了一份文档,该文档建立了一套编写 Python 代码的指南和最佳实践,称为PEP8。特别是,PEP 是 Python Enhancement Proposal 的代名词,PEP8 只是发布的众多文档之一。PEP 8 的主要目标是提高 Python 代码的可读性和一致性。
正如 Guido van Rossum 所说:
“代码的阅读次数远多于编写次数”
因此,编写可读的代码就像提前投资它,因为它要么被你未来的自己阅读,要么被其他人阅读。我经常遇到的一个常见情况是我自己或我的同事编写的代码文档很差,但幸运的是我们多年来有所改进。
做填字游戏或数独是很好的心理练习,为什么不做同样的事情来测试您的 Python 技能?Leetcode和HackerRank等平台可帮助您学习和练习数据结构和算法,并为技术面试做好准备。数据科学领域的其他类似平台是Interview Query和StrataScratch。
Kaggle是有抱负的数据科学家通过参加数据竞赛来学习数据科学的好地方。除此之外,还有大量可供练习的数据集以及大量社区出版的笔记本可供从中汲取灵感。如果您热衷于成为 Kaggler 的佼佼者,Coursera 的课程 如何赢得数据科学竞赛:向顶级 Kaggler 学习可以帮助您。
由于程序员经常依赖橡皮鸭作为教学工具,他们会尝试向他们解释他们的问题,并且这样做可以让他们获得观点,并且经常找到解决这些问题的方法。
作为有抱负的数据科学家或正在学习新工具的实践数据科学家,最好的学习方式也是将其教授给其他人,正如费曼学习技术所述。
那么你到底能教什么呢?实际上有很多方法,我在下面列出了:
为开源项目做贡献有很多好处。首先,您将能够向该领域的其他专家学习,并从审查其他人的代码中学习(即通过审查问题和拉取请求)。。
其次,您还将有机会在贡献代码时熟悉 Git 的使用(即开源项目托管在 GitHub 以及相关平台,如 BitBucket、GitLab 等)。
第三,随着您获得社区和同行的认可,您将能够与社区中的其他人建立联系。您还将对自己的编码能力更有信心。谁知道呢,也许您甚至会创建自己的开源项目!
第四,因为开源项目依赖于自愿贡献的开发人员,所以你要付出代价。为更大的利益做出贡献也可能让您感到满意,因为您正在对社区产生影响。
第五,您还将获得为现实世界的项目做出贡献的宝贵经验,这可能会帮助您在未来找到自己的实习生或工作安置。
贡献并不意味着您必须为项目创建一个大而复杂的增强。您可以首先纠正您可能遇到的一个小错误,这应该会使势头滚动。
一个额外的好处是,当您修复代码时,您还可以提高您的编码和文档技能(即编写可读和可维护的代码)。此外,由此带来的挑战和责任也可能有助于您继续参与编码。
总之,本文探讨了 Python 应用于数据科学的前景。作为一名自学成才的程序员,我知道不仅要学习编码,还要应用它来解决数据问题是多么困难。旅程并不容易,但如果你能坚持下去,你会惊讶于在你的数据科学之旅中使用 Python 可以做多少事情。
我希望本文提供了一些起点,您可以在开始学习之旅时使用这些起点进行调整。请发表评论以提出适合您的任何观点!