Python数据分析简介及环境搭建
学习目标
-
了解Python做数据分析的优势
-
知道Python数据分析常用开源库
-
知道如何启动jupyter notebook
-
知道如何使用jupyter notebook
-
Python进行数据分析的优势
-
Python作为当下最为流行的编程语言之一,可以独立完成数据分析的各种任务
-
功能强大,在数据分析领域里有海量开源库,并持续更新
-
是当下热点——机器学习/深度学习 领域最热门的编程语言
-
除数据分析领域外,在爬虫,Web开发等领域均有应用
-
-
与Excel,PowerBI,Tableau等软件比较
-
Excel有百万行数据限制,PowerBI ,Tableau 在处理大数据的时候速度相对较慢
-
Excel,Power BI 和Tableau 需要付费购买授权
-
Python作为热门编程语言,功能远比Excel,PowerBI,Tableau等软件强大
-
Python跨平台,Windows,MacOS,Linux都可以运行
-
-
与R语言比较
-
Python在处理海量数据的时候比R语言效率更高
-
Python的工程化能力更强,应用领域更广泛,R专注于统计与数据分析领域
-
Python在非结构化数据(文本,音视频,图像)和深度学习领域比R更具有优势
-
在数据分析相关开源社区,python相关的内容远多于R语言
-
-
常用Python数据分析开源库介绍
-
NumPy
NumPy(Numerical Python) 是Python数据分析必不可少的第三方库,NumPy的出现一定程度上解决了Python运算性能不佳的问题,同时提供了更加精确的数据类型,使其具备了构造复杂数据类型的能力。
-
是一个运行速度非常快的数学库,主要用于数组计算,包含:
-
高性能科学计算和数据分析的基础包
-
ndarray,多维数组,具有矢量(向量)运算能力,快速、节省空间
-
矩阵运算,无需循环,可完成类似Matlab(商业数学软件)中的矢量运算
-
用于读写磁盘数据的工具以及用于操作内存映射文件的工具
-
示例代码1: 无需使用循环逐个元素地进行操作
import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) c = a + b print(c) # [5 7 9]
-
示例代码2: 计算两个向量的点积
a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) dot_product = np.dot(a, b) print(dot_product) # 32
-
-
Pandas
-
Pandas是一个强大的分析结构化数据的工具集,Pandas丰富的API能够更加灵活、快速的对数据进行清洗、处理以及分析。
-
Pandas在数据处理上具有独特的优势:
-
底层是基于NumPy构建的,所以运行速度特别的快
-
有专门的处理缺失数据的API
-
具有强大而灵活的分组、聚合、转换功能
-
-
Pandas利器之 Series
-
Series是一种类似于一维数据的数据结构
-
是由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即行索引)组成
-
仅由一组数据也可产生简单的Series对象
-
-
Pandas利器之 DataFrame
-
DataFrame是一种表格型的数据结构,既有行索引也有列索引,可以简单的把DataFrame理解为一张数据表
-
包含有一组或多组有序的列(Series),每列可以是不同的值类型(数值、字符串、布尔型等)
-
-
Matplotlib
Matplotlib 是一个功能强大的数据可视化开源Python库
-
Python中使用最多的图形绘图库
-
可以创建静态,动态和交互式的图表
-
通过简单的代码调用,轻松地绘制出复杂的图形。
-
示例1
-
Seaborn
-
Seaborn是一个Python数据可视化开源库
-
建立在matplotlib之上,并集成了pandas的数据结构
-
Seaborn通过更简洁的API来绘制信息更丰富,更具吸引力的图像
-
面向数据集的API,与Pandas配合使用起来比直接使用Matplotlib更方便
-
用户无需过多关注底层的细节即可生成高质量的图表
-
示例:
-
Sklearn
-
scikit-learn 是基于 Python 语言的机器学习工具
-
简单高效的数据挖掘和数据分析工具
-
可供大家在各种环境中重复使用
-
建立在 NumPy ,SciPy(Scientific Python) 和 matplotlib 上
-
简化了机器学习的工作流程,提高了模型的性能和准确性。
-
-
Jupyter Notebook
-
概述
-
Jupyter Notebook是一个开源 Web 应用程序,使用Jupyter Notebook可以创建和共享
-
代码
-
数学公式
-
可视化图表
-
笔记文档
-
-
Jupyter Notebook用途
-
数据清理和转换
-
统计分析
-
数据可视化
-
机器学习等
-
-
Jupyter Notebook是数据分析学习和开发的首选开发环境
-
配置
-
设置jupyter服务密码
-
进入python的命令终端, 在linux终端执行
python
命令 -
输入以下代码设置密码, 记录生成的密码字符串
from notebook.auth import passwd passwd() # 设置自己的密码,然后两次输入确认生成加密字符串, 密码设置为 123456 即可
-
生成Jupyter配置文件并配置
-
在linux终端执行以下命令, 生成
jupyter_notebook_config.py
配置文件
jupyter notebook --generate-config
-
打开
jupyter_notebook_config.py
配置文件, 在最后添加以下内容即可
# 打开文件 vim ~/.jupyter/jupyter_notebook_config.py # 添加以下内容 c.NotebookApp.allow_remote_access = True #允许远程访问 c.NotebookApp.allow_root = True #允许root访问 c.NotebookApp.ip='*' # 所有ip皆可访问 c.NotebookApp.password = '上面复制的那个字符串' c.NotebookApp.open_browser = False # 禁止自动打开浏览器 c.NotebookApp.port =8888 # 端口 c.NotebookApp.notebook_dir = '/'
-
how 怎么用
-
使用浏览器连接 且 操作
-
启动 jupyter 服务
-
linux终端输入
jupyter notebook
命令启动
jupyter notebook
-
访问 jupyter
-
在本地浏览器中输入
192.168.88.100:8888
, 进入jupyter的web界面 -
注意: 不要关闭jupyter服务
-
Jupyter Notebook的使用
-
Jupyter Notebook的界面
-
新建notebook文档
-
注意:Jupyter Notebook 文档的扩展名为
.ipynb
,与我们正常熟知的.py
后缀不同 -
新建文件之后会打开Notebook界面
-
菜单栏中相关按钮功能介绍:
-
Jupyter Notebook的代码的输入框和输出显示的结果都称之为cell,cell行号前的 * ,表示代码正在运行
-
Jupyter Notebook常用快捷键
Jupyter Notebook中分为两种模式:命令模式和编辑模式
-
两种模式通用快捷键
-
Shift+Enter
,执行本单元代码,并跳转到下一单元 -
Ctrl+Enter
,执行本单元代码,留在本单元
-
-
按ESC进入命令模式
-
Y
,cell切换到Code模式 -
M
,cell切换到Markdown模式 -
A
,在当前cell的上面添加cell -
B
,在当前cell的下面添加cell -
双击D
:删除当前cell -
编辑模式:按Enter进入,或鼠标点击代码编辑框体的输入区域
-
撤销:
Ctrl+Z
(Mac:CMD+Z) -
补全代码:变量、方法后跟
Tab键
-
为一行或多行代码添加/取消注释:
Ctrl+/
(Mac:CMD+/)
-
Jupyter Notebook中使用Markdown
-
在命令模式中,按M即可进入到Markdown编辑模式
-
使用Markdown语法可以在代码间穿插格式化的文本作为说明文字或笔记
-
Markdown基本语法:标题和缩进
-
效果如下图所示
-
编写代码
# 快速入门
import numpy as np import matplotlib.pyplot as plt import pandas as pd
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) a
-
使用 pycharm 连接 且 操作
-
配置
创建好项目之后, 配置一个远程解释器 在项目的设置setting 菜单中 设置 python interpreter
第一次设置会弹出一个窗口, 点击yes 在下面的窗口输入密码
-
远程连接
-
操作
import numpy as np import matplotlib.pyplot as plt import pandas as pd
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) a
总结
-
了解Python做数据分析的优势
-
Python可以独立高效的完成数据分析相关的全部工作
-
-
知道Python数据分析常用开源库
-
Pandas
-
Numpy
-
Matplotlib
-
Seaborn
-
sklearn
-
-
会启动和使用jupyter notebook