讲的是利用Python进行数据控制、处理、整理、分析等方面的具体细节和基本要点。
-
为什么是 Python 用于数据分析?
- Python 成功的部分原因是其能轻松地集成和调用 C、C++、Fortran 代码。大部分现代计算软件利用了一些 Fortran和 C 库来实现线性代数、积分、快速傅里叶变换等算法。许多企业和国家实验室也利用 Python 粘合来已经用了30多年的遗留软件系统。
- Python 和自然语言相似,很多科研人员和程序员非常喜欢,因此产生了第3点👇。
- Python 有很多高效、实用的类库,并可以方便地建立网站、爬取数据、数据分析、进行机器学习。
-
库以及 pip 软件管理
- library (类、库)是什么
import time from time import sleep
-
pip 类库管理
-
pip 文档地址:https://pypi.org/project/pip/
-
更换数据源:清华源地址
- 升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
pip install pip -U pip config set global.index-url https://mirrors.cloud.tencent.com/pypi/simple/ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 阿里源 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ # 腾讯源 pip config set global.index-url http://mirrors.cloud.tencent.com/pypi/simple # 豆瓣源 pip config set global.index-url http://pypi.douban.com/simple/
-
如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U
-
安装
python -m pip install SomePackage # latest version python -m pip install SomePackage==1.0.4 # specific version python -m pip install 'SomePackage>=1.0.4' # minimum version # -m 的含义表示将库当作脚本来执行。 pip install SomePackage # latest version pip install SomePackage==1.0.4 # specific version pip install 'SomePackage>=1.0.4' # minimum version pip freeze > requirements.txt pip install -r requirements.txt pip list # list installed packages
-
卸载
python -m pip uninstall SomePackage
-
更新
pip install package_name --upgrade
-
科学计算的常用类库:
-
NumPy 是以矩阵为基础的数值计算模块,提供高性能的数组对象。文档地址:http://www.numpy.org/
-
Pandas 是基于 NumPy 的一种工具,纳入了一些标准的数据模型,提供了处理数字图表和时序数据的数据结构和操作功能,常用于金融数据分析。文档地址:https://pandas.pydata.org/
-
Scipy 是基于 NumPy 的一种高级数据处理工具,提供最优化、回归、插值、线性代数模块、傅里叶变换、信号和图像处理,常微分方程求解器等功能。文档地址:http://www.scipy.org/
-
Matplotlib 是2D绘图工具,常用于可视化展示数据。文档地址:http://matplotlib.org/
-
其他类库
-
seaborn 是基于 Matplotlib 的更加美观的绘图工具。文档地址:https://seaborn.pydata.org/
-
anaconda 是科学计算常用的环境管理工具,什么是环境?
-
NumPy 初步
-
Python 自带的数据类型性能低。
-
jupyter 文档地址
pip install jupyterlab
-
数据类型:ndarray
-
特点:数组里面每一个元素是相同类型。
-
手动创建数组
import numpy as np # 推荐如此导入Numpy vec = np.array([0, 1, 2, 3]) mat = np.array([[0, 1, 2], [3, 4, 5]]) mat.ndim mat.shape mat.dtype len(mat)
-
函数创建数组
a = np.arange(9) b = np.arange(2, 2, 2)
-
-
指定长度的数组
c = np.linspace(1, 6, 6)
-
特殊的数组
np.ones((2, 2)) # tuple np.eye(3) # 单位矩阵 np.diag(np.array([1, 2, 3, 4])) # 对角阵 np.random.rand(4) # 随机数组 np.random.seed(0) # 设定随机种子,保证实验的可重现 x1 = np.random.randint(10, size=6) # 一维数组 x2 = np.random.randint(10, size=(3, 4)) # 二维数组 x3 = np.random.randint(10, size=(3, 4, 5)) # 三维数组
-
内置数据类型
- 明确定义数组数据类型:(默认数据类型是浮点型)
tmp = np.array([1, 2, 3], dtype=float)
- 所有内置类型
f = np.array([1+2j, 3+4j, 5+6*1j]) # j为虚部 f.dtype b = np.array([True, False, False, True]) s = np.array(['Bonjour', 'Hello', 'Hallo',]) # int32 # int64 # uint32 # uint64
- 更多内容在下节
课后作业
- 安装 pip 环境,和那几个数据分析库并且运行上述代码。