以下操作均在 Windows 环境下进行操作,先说明一下哈
一、安装 Python1、官网下载 Python
进入官网(https://www.python.org),点击 Downloads,选择要下载的版本:
2、安装 Python
安装时注意下图勾选部分一定要勾选:
二、安装代码编辑器 PyCharm1、官网下载 PyCharm
进入官网(https://www.jetbrains.com/pycharm),点击 Downloads,选择要下载的版本:
2、安装 PyCharm
设置安装路径之后,一直点 next 即可。
3、优化 PyCharm 使用
三、HelloWorld创建第一个项目 HelloWorld –> 创建文件 app.py –> 写入代码:
1print("HelloWorld")
效果图:
四、Python 语法看语法部分之前,推荐直接看下面入门练习题,潜移默化中对 Python 基本语法会有一定了解之后,再回来看这一部分,会更加熟悉 Python 的使用!
五、入门练习题1.打印 10 个 *
使用到表达 ...
突发奇想,想用Python把数据结构的知识再过一遍,所以就开始从顺序表从头来一遍,Python内置了一些功能,感觉只需要定义方法调用就好了,或者不想这么干的话,直接调用内置的方法咯。
list 是一种元素个数可变的线性表,采用了分离式技术实现的动态顺序表。可以加入和删除元素,并在各种操作中维持已有元素的顺序(即保序)。
1.1 创建顺序表123456# 创建顺序表def CreateSeqList(self): element = input("please enter(input #:end):") while element != '#': self.seqList.append(int(element)) element = input("please enter(input #:end):")
1.2 查找元素123456789# 查找顺序表中某一个元素def FindElement(self): key = int(input("please ente ...
单链表是一种链式的数据结构,链表中的数据用结点表示,保持了数据之间的逻辑关系,但存储空间不一定是按照顺序存储。
链表的基本元素有:
节点:包括数据域和指针域,数据域存放数据,指针域存放指向下一个元素的指针
head:头结点
tail:尾结点
None:链表最后一个结点的指针域为None
Python中没有显式的指针,但是有引用啊,所以我们可以通过定义节点类和引用来实现链表!
链表分为单链表和单循环链表,双向链表和双向循环链表,本篇先讲一下单链表:
2.1 定义节点类节点类中包括节点数据和下一个节点地址,即引用
1234567891011121314# 节点类class Node(object): # 单个节点 初始化 输入一个值data,将值变为一个节点 def __init__(self, data): self.data = data self.next = None # 打印对象中具体的属性值 def __str__(self): # 测试基本功能,输出data return self.dat ...
栈是一种数据结构,只能从一端插入和删除操作,遵循着先进后出原则存储数据。
3.1 栈的初始化1234def __init__(self): self.stack = [] # 栈列表 self.size = 20 # 栈大小 self.top = -1 # 栈顶位置
3.2 元素进栈1234# 元素进栈def push(self, element): self.stack.append(element) self.top += 1
3.3 元素出栈123456# 元素出栈def pop(self): element = self.stack[-1] self.top -= 1 del self.stack[-1] return element
这里可以直接调用pop函数,使用如下:
1self.stack.pop() # 弹出栈顶元素
3.4 获取栈顶元素123# 获取栈顶位置def getTop(self): return self.top
这里也可以直接使用列表,使用如下:
1self.s ...
🐹 本章讨论Python的内置功能,这些功能本书会用到很多。虽然扩展库,比如pandas和Numpy,使处理大数据集很方便,但它们是和Python的内置数据处理工具一同使用的。
我们会从Python最基础的数据结构开始:元组、列表、字典和集合。然后会讨论创建你自己的、可重复使用的Python函数。最后,会学习Python的文件对象,以及如何与本地硬盘交互。
3.1 数据结构和序列Python的数据结构简单而强大。通晓它们才能成为熟练的Python程序员。
3.1.1 元组元组是一个固定长度,不可改变的Python序列对象。创建元组的最简单方式,是用逗号分隔一列值:
1234In [1]: tup = 4, 5, 6In [2]: tupOut[2]: (4, 5, 6)
当用复杂的表达式定义元组,最好将值放到圆括号内,如下所示:
1234In [3]: nested_tup = (4, 5, 6), (7, 8)In [4]: nested_tupOut[4]: ((4, 5, 6), (7, 8))
用tuple可以将任意序列或迭代器转换成元组:
1234567In [5] ...
NumPy(Numerical Python的简称)是Python数值计算最重要的基础包。大多数提供科学计算的包都是用NumPy的数组作为构建基础。
NumPy的部分功能如下:
ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。
用于对整组数据进行快速运算的标准数学函数(无需编写循环)。
用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
线性代数、随机数生成以及傅里叶变换功能。
用于集成由C、C++、Fortran等语言编写的代码的A C API。
由于NumPy提供了一个简单易用的C API,因此很容易将数据传递给由低级语言编写的外部库,外部库也能以NumPy数组的形式将数据返回给Python。这个功能使Python成为一种包装C/C++/Fortran历史代码库的选择,并使被包装库拥有一个动态的、易用的接口。
NumPy本身并没有提供多么高级的数据分析功能,理解NumPy数组以及面向数组的计算将有助于你更加高效地使用诸如pandas之类的工具。因为NumPy是一个很大的题目,我会在附录A中介绍更多NumPy高级功能,比如广播 ...
pandas是本书后续内容的首选库。它含有使数据清洗和分析工作变得更快更简单的数据结构和操作工具。pandas经常和其它工具一同使用,如数值计算工具NumPy和SciPy,分析库statsmodels和scikit-learn,和数据可视化库matplotlib。pandas是基于NumPy数组构建的,特别是基于数组的函数和不使用for循环的数据处理。
虽然pandas采用了大量的NumPy编码风格,但二者最大的不同是pandas是专门为处理表格和混杂数据设计的。而NumPy更适合处理统一的数值数组数据。
自从2010年pandas开源以来,pandas逐渐成长为一个非常大的库,应用于许多真实案例。开发者社区已经有了800个独立的贡献者,他们在解决日常数据问题的同时为这个项目提供贡献。
在本书后续部分中,我将使用下面这样的pandas引入约定:
1In [1]: import pandas as pd
因此,只要你在代码中看到pd.,就得想到这是pandas。因为Series和DataFrame用的次数非常多,所以将其引入本地命名空间中会更方便:
1In [2]: from pand ...
在数据分析和建模的过程中,相当多的时间要用在数据准备上:加载、清理、转换以及重塑。这些工作会占到分析师时间的80%或更多。有时,存储在文件和数据库中的数据的格式不适合某个特定的任务。许多研究者都选择使用通用编程语言(如Python、Perl、R或Java)或UNIX文本处理工具(如sed或awk)对数据格式进行专门处理。幸运的是,pandas和内置的Python标准库提供了一组高级的、灵活的、快速的工具,可以让你轻松地将数据规整为想要的格式。
实际上,pandas的许多设计和实现都是由真实应用的需求所驱动的。
在本章中,我会讨论处理缺失数据、重复数据、字符串操作和其它分析数据转换的工具。下一章,我会关注于用多种方法合并、重塑数据集。
7.1 处理缺失数据在许多数据分析工作中,缺失数据是经常发生的。pandas的目标之一就是尽量轻松地处理缺失数据。例如,pandas对象的所有描述性统计默认都不包括缺失数据。
缺失数据在pandas中呈现的方式有些不完美,但对于大多数用户可以保证功能正常。对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。我们称其为哨兵值, ...
我们现在使用的库,有 pandas、scikit-learn 和 statsmodels,2017年,数据科学、数据分析和机器学习的资源已经很多,原来通用的科学计算拓展到了计算机科学家、物理学家和其它研究领域的工作人员。学习 Python 和成为软件工程师的优秀书籍也有了。
因为这本书是专注于 Python 数据处理的,对于一些 Python 的数据结构和库的特性难免不足。因此,本章和第 3 章的内容只够你能学习本书后面的内容。
在我来看,没有必要为了数据分析而去精通 Python。我鼓励你使用IPython shell和Jupyter试验示例代码,并学习不同类型、函数和方法的文档。虽然我已尽力让本书内容循序渐进,但读者偶尔仍会碰到没有之前介绍过的内容。
本书大部分内容关注的是基于表格的分析和处理大规模数据集的数据准备工具。为了使用这些工具,必须首先将混乱的数据规整为整洁的表格(或结构化)形式。幸好,Python 是一个理想的语言,可以快速整理数据。Python 使用得越熟练,越容易准备新数据集以进行分析。
最好在 IPython 和 Jupyter 中亲自尝试本书中使用的工具。当 ...
1.1 本书的内容Python 数据分析这本书讲的是利用 Python 进行数据控制、处理、整理、分析等方面的具体细节和基本要点。作者介绍 Python 编程和用于数据处理的库和工具环境,掌握这些,可以让你成为一个数据分析专家。虽然本书的标题是“数据分析”,重点却是 Python 编程、库,以及用于数据分析的工具。这就是数据分析要用到的 Python 编程。
1.1.1 什么样的数据?
🔰 当书中出现“数据”时,究竟指的是什么呢?
主要指的是结构化数据(structured data),这个故意含糊其辞的术语代指了所有通用格式的数据,例如:
表格型数据,其中各列可能是不同的类型(字符串、数值、日期等)。比如保存在关系型数据库中或以制表符/逗号为分隔符的文本文件中的那些数据。
多维数组(矩阵)。
通过关键列(对于 SQL 用户而言,就是主键和外键)相互联系的多个表。
间隔平均或不平均的时间序列。
这绝不是一个完整的列表。大部分数据集都能被转化为更加适合分析和建模的结构化形式,虽然有时这并不是很明显。如果不行的话,也可以将数据集的特征提取为某种结构化形式。例如,一组新闻文 ...
