Logo
Section 1 / 16

简介:用于数据科学的 Python

了解本章的主题:数据科学中 Python 的基础知识。

导入

简介:用于数据科学的 Python

了解本章的主题:数据科学中 Python 的基础知识。

章节概述

在本章中,你将首次接触 Python 和 Jupyter 笔记本——这是数据科学家最常用的工具之一。随后,你会初步了解本课程核心案例研究项目的数据集。你将开始建立对数据质量保障检查的直观理解,这些检查是建模前必不可少的步骤。到本章结束时,你将能够使用 pandas(Python 中处理表格数据最主流的包)进行探索性数据分析、质量检查和数据清洗。

大多数企业都拥有大量关于其运营和客户的数据。通过描述性的图表、图形和表格来呈现这些数据,有助于理解企业的当前状况。然而,若要为未来的业务策略和运营提供量化的指导,则需要更进一步。这时就需要用到机器学习和预测建模的方法。在本课程中,我们将展示如何从描述性分析过渡到对未来运营的具体建议,借助预测模型实现这一目标。

为了达成这一目标,我们将通过 Python 及其众多库介绍一些最广泛使用的机器学习工具。你还将了解成功实施项目所需的一些实践技能:分析数据时的好奇心,以及与客户的有效沟通。花时间细致地查看数据集,并批判性地评估其是否准确满足预期用途,是非常值得的投入。你将在本章学习多种评估数据质量的技术。

在本章中,我们首先熟悉用于数据探索的基本工具,然后讨论几种你可能接收数据的典型工作场景。接着,我们将深入探索案例研究的数据集,帮助你学会发现潜在问题,从而在进入建模阶段时更加自信。

用于数据科学的 Python

在本课程中,我们将使用 Python 编程语言。Python 是数据科学领域的主流语言之一,也是增长最快的编程语言之一。人们普遍认为 Python 易于学习,这是它受欢迎的重要原因。如果你已有 Python 经验,那非常好;即使你熟悉其他语言(如 C、Matlab 或 R),也应该能较快上手 Python。为了更好地学习本课程,你应该具备计算机编程的基本概念基础,例如控制程序流程的 for 循环和 if 条件语句。无论你之前使用何种语言,这类结构都很常见,而在 Python 中也同样存在。

Python 与其他一些语言的一个关键区别在于它是“零索引”的:也就是说,有序集合的第一个元素的索引为 0。Python 还支持负索引,其中索引 -1 表示有序集合的最后一个元素,负数索引从末尾向前计数。切片操作符 : 可用于选取有序集合中某个范围内的多个元素,可以是从开头或结尾开始的一段。

索引与切片操作符

下面我们演示索引和切片操作符的使用方式。为了有对象可供索引,我们将创建一个列表(list),这是一种可包含任意类型数据(包括数值和字符串)的可变有序集合。“可变”意味着列表中的元素在赋值后仍可被修改。为了生成列表中的数字(连续整数),我们将使用内置的 range() 函数。严格来说,range() 函数生成的是一个迭代器,需通过 list() 函数转换为列表,但此处无需深究这一细节。

以下 Python 命令展示了如何打印前五个正整数的列表,执行若干索引操作,并将列表的第一个元素更改为另一种数据类型的值:

1>>> example_list = list(range(1,6)) 2>>> example_list 3[1, 2, 3, 4, 5] 4>>> example_list[0] 51 6>>> example_list[-1] 75 8>>> example_list[-2] 94 10>>> example_list[:3] 11[1, 2, 3] 12>>> example_list[0] = 'a string' 13>>> example_list 14['a string', 2, 3, 4, 5]

你可以通过运行上述代码来练习列表和索引操作。可在下方终端中执行这些代码。

需要注意的是:无论是切片操作还是 range() 函数,区间都是“左闭右开”的。换句话说,当你指定 range() 的起始和终止点时,起始点 1 包含在结果中,而终止点 6 不包含。类似地,在使用切片 [:3] 对列表进行索引时,包含索引从 0 到 2 的元素,不包含索引为 3 的元素。

我们提到了“有序集合”,但 Python 也支持无序集合。其中一种重要类型是字典(dictionary)。字典是一种无序的键/值对集合。你不再通过整数索引来查找字典中的值,而是通过键(可以是数字或字符串)进行查找。字典使用花括号 {} 创建,键值对之间用逗号分隔。以下命令展示了如何创建一个记录水果数量的字典:先查看苹果的数量,然后添加一种新水果及其数量:

1>>> example_dict = {'apples':5, 'oranges':8} 2>>> example_dict['apples'] 35 4>>> example_dict['bananas'] = 13 5>>> example_dict 6{'apples':5, 'oranges':8, 'bananas':13}

Python 还有许多其他独特特性,这里仅作简要介绍,不深入细节。实际上,在 Python 中处理数据时,你大概率会使用像 pandas (pandas) 和 NumPy (numpy) 这样的第三方包。NumPy 提供了对数组和矩阵的高效数值计算能力,而 pandas 则提供了丰富的数据整理和探索功能,作用对象是被称为DataFrame的表格型数据结构。不过,了解一些 Python 基础知识仍然很重要,毕竟它是所有这些工具的基础。例如,NumPy 和 pandas 中的索引机制与原生 Python 是一致的。

Python 的一大优势在于它是开源的,并拥有活跃的开发者社区,不断推出强大的工具。本课程将使用其中多个工具。但来自不同开发者的开源包也可能带来依赖关系的问题。例如,安装 pandas 时可能依赖特定版本的 NumPy,而该版本你可能尚未安装。包管理系统在此方面大大简化了工作:当你通过包管理器安装新包时,系统会自动确保所有依赖项都被满足;若不满足,会提示你升级或安装必要的新包。

简介

练习:熟悉 Python