在Python中,NumPy、Pandas和Matplotlib是进行数据分析和数据可视化的三个核心库。它们各自有不同的功能,但经常一起使用来处理和分析数据。
1、NumPy
NumPy(Numerical Python)是一个用于科学计算的库,提供了高性能的多维数组对象以及这些数组的操作工具。它是Pandas和Matplotlib的基础。
核心功能:提供高性能的多维数组对象和数学运算工具
主要功能:
创建和操作多维数组
数学函数(如线性代数、傅里叶变换等)
关键特性:
广播机制:不同形状数组间的运算
向量化操作:避免显式循环
线性代数:矩阵运算、特征值分解等
import numpy as np
# 创建一个数组
arr = np.array([1, 2, 3, 4, 5])
print(arr)
# 创建二维数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_2d)
2、Pandas
核心功能:提供高效的数据结构和数据分析工具
Pandas 是一个强大的数据分析工具库,提供了快速、灵活和表达式丰富的数据结构,旨在使“关系”或“标签”数据的处理既简单又直观。
主要功能:
数据清洗和准备
数据分析和操作
数据聚合和分组
时间序列功能
关键特性
DataFrame:二维表格型数据结构
时间序列:强大的时间处理功能
数据清洗:处理缺失值、重复值等
数据I/O:支持多种文件格式读写
import pandas as pd
import numpy as np
# 创建一个DataFrame
data = {'Name': ['Tom', 'Nick', 'Krish', 'Jack'],
'Age': [20, 21, 19, 18]}
df = pd.DataFrame(data)
print(df)
# 读取CSV文件
df = pd.read_csv('data.csv')
print(df.head()) # 显示前几行数据
3、Matplotlib
核心功能:Python 的基础绘图库
Matplotlib 是一个绘图库,用于创建静态、动态和交互式的可视化。它是Python中最常用的绘图库之一。
主要功能:
创建各种静态、动态和交互式图表和图形
支持多种图表类型,如线图、散点图、条形图等
高度可定制的外观和布局选项
关键特性
多种图表类型:线图、柱状图、散点图、饼图等
高度可定制:几乎可以调整所有视觉元素
面向对象和MATLAB风格两种API
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 使用Pandas创建数据
data = {'Name': ['Tom', 'Nick', 'Krish', 'Jack'], 'Age': [20, 21, 19, 18]}
df = pd.DataFrame(data)
# 使用Matplotlib绘制条形图
plt.bar(df['Name'], df['Age'])
plt.xlabel('Name')
plt.ylabel('Age')
plt.title('Age Distribution')
plt.show()
结合使用这三个库可以高效地进行数据处理、分析和可视化。可以使用Pandas来加载和处理数据,使用NumPy进行数据处理(例如数组操作),然后使用Matplotlib来创建图表以展示分析结果
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 1. 使用NumPy进行数值计算
data = np.random.randn(100, 4)
# 2. 使用Pandas进行数据整理和分析
df = pd.DataFrame(data, columns=['A', 'B', 'C', 'D'])
summary = df.describe()
# 3. 使用Matplotlib可视化结果
df.plot(kind='box')
plt.title('数据分布')
plt.show()
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 使用Pandas读取数据并处理数据
df = pd.read_csv('data.csv') # 假设有一个CSV文件data.csv包含一些数据
df['NewColumn'] = df['Column1'] + df['Column2'] # 添加新列作为示例操作
df = df[df['NewColumn'] > 100] # 数据过滤示例
# 使用Matplotlib进行可视化
plt.figure(figsize=(10, 6)) # 设置图表大小
plt.plot(df['Date'], df['NewColumn'], marker='o') # 绘制时间序列数据,例如日期与某值的趋势图
plt.xlabel('Date') # X轴标签
plt.ylabel('Value') # Y轴标签
plt.title('Value Trend Over Time') # 图表标题
plt.grid(True) # 显示网格线,提高可读性
plt.show() # 显示图表
一、安装NumPy环境
1、使用venv虚拟环境
在Python中使用venv
虚拟环境有几个关键的好处,这使得它成为管理项目依赖和环境的首选方法。
1、隔离性:
使用venv
可以创建一个独立的Python环境,这意味着你可以为不同的项目安装不同版本的库,而不会相互干扰。这对于避免依赖冲突非常有用。
2、版本控制:
你可以为每个项目指定特定版本的Python解释器和库。这样,你可以确保项目的稳定性和可重复性,无论在哪个环境中运行代码。
3、简化依赖管理:
使用venv
,你可以很容易地安装、更新或删除项目所需的库,而不会影响到系统级的Python环境。这大大简化了依赖管理。
4、易于分享:
当你需要将项目分享给其他人或在不同的机器上工作时,venv
可以确保所有必要的依赖都被包含在虚拟环境中,使得项目的设置和运行变得简单。
创建虚拟环境
打开终端或命令提示符。
导航到你的项目目录。
运行以下命令来创建一个虚拟环境(例如,名为
venv
):
# 使用 virtualenv 创建虚拟环
virtualenv .venv
# 使用 Python 自带的 venv 模
python -m venv .venv
激活虚拟环境
# 在Windows上:
venv\Scripts\activate
# 在macOS和Linux上:
source venv/bin/activate
2、安装 NumPy;Pandas;Matplotlib
首先,确保你的系统上已经安装了Python。你可以通过在终端或命令提示符中输入python --version
或python3 --version
来检查Python的版本
使用Python虚拟环境:为了避免系统级的包冲突,建议使用虚拟环境。你可以使用venv
(Python 3.3及以上版本内置)或conda
(Anaconda/Miniconda)来创建和管理虚拟环境。例如,使用venv
:
cd .venv
# 切换到虚拟环境下
cd Scripts
# 激活虚拟环境
activate
# 安装numpy,pandas,matplotlib;使用其他镜像源,如阿里云、清华源、豆瓣
# 使用阿里云镜像源
pip install numpy pandas matplotlib -i https://mirrors.aliyun.com/pypi/simple/
# 使用清华源
pip install numpy pandas matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
# 使用豆瓣镜像源
pip install numpy pandas matplotlib -i https://pypi.douban.com/simple
# 不使用镜像源(默认官方源),如果你的网络环境可以访问官方pypi源,可以直接使用默认源安装:
pip install numpy pandas matplotlib
3、安装 ipyhton(更好的交互式Python编程环境)
# 使用阿里云镜像源
pip install ipython -i https://mirrors.aliyun.com/pypi/simple/
4、安装 Jupyter Notebook
# 使用阿里云镜像源
pip install jupyter -i https://mirrors.aliyun.com/pypi/simple/
安装之后,输入jupyter notebook(切换到项目目录下,再执行jupyter notebook命令)
jupyter启动默认浏览器
在当前项目目录下右击,选择【New Notebook】
然后写入Python代码,如输入print('hello'),运行(Ctrl + Enter)
Jupyter Notebook有两种键盘输入模式
命令模式:键盘输入运行程序命令;这时单元格框线为蓝色
编辑模式:允许你往单元格中键入代码或文本;这时单元格框线是绿色
Jupyter Notebook常用快捷键
【1】编辑模式(Enter 键启动)
Tab:代码补全或缩进
Shift + Tab:提示
Shift + Enter:允许本单元,选中下一单元
Ctrl + Enter:运行本单元
Alt + Enter:运行本单元,在下面插入一单元
【2】命令模式(按键 Esc 启动)
Shift + Enter:运行本单元,选中下个单元
Ctrl + Enter:运行本单元
Alt + Enter:运行本单元,在其下插入新单元
Y: 单元转入代码状态
M: 单元转入 markdown 状态
A: 在上方插入新单元
B: 在下方插入新单元
DD: 删除选中的单元
二、NumPy使用
在Python中,ndarray(ndarray的全名是NumPy的“N-dimensional array”;N维数组)是NumPy库中一个非常重要的数据结构,用于存储多维数组。它提供了大量的数学和逻辑函数操作,使得数组的创建、修改、索引和计算变得更加方便和高效。
1、创建ndarray
【1】使用np.array()由python list创建
注:
- numpy默认ndarray的所有元素的类型是相同的
- 如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int
- ndarray的常见数据类型:
- int: int8、uint8、int16、int32、int64
- float: float16、float32、float64
- str: 字符串
【2】使用np.routines函数创建
1、np.ones(shape, dtype=None, order='C')
2、np.zeros(shape, dtype=float, order='C')
3、np.full(shape, fill_value, dtype=None, order='C')
4、np.eye(N, M=None, k=0, dtype=float)
5、np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
6、np.arange([start, ]stop, [step, ]dtype=None)
7、np.random.randint(low, high=None, size=None, dtype='l')
8、np,random.randn(d0, d1, ..., dn)
9、np.random.normal(loc=0.0, scale=1.0, size=None)
10、np.random.random(size=None)
11、np.random.random(d0, d1, ..., dn)
2、ndarray属性
1、ndim:维度
2、shape:形状
3、size:总长度
4、dtype:元素类型
3、ndarray基本操作
1、索引
根据索引修改数据
2、切片
反转;两个::进行切片
左右反转
上下反转
颜色反转
3、变形
4、级联
级联基本要求:垂直级联,列数一定要相同;水平级联,行数一定要相同
垂直级联:要求列数一致
水平级联:要求行数一致
np.hstack和np.vstack
5、切分
6、副本
运行效率
4、ndarray聚合操作
1、求和np.sum
2、最大/最小值:np.max/np.min
3、其它聚合操作
- np.min 最小值
- np.max 最大值
- np.mean 平均值
- np.average 平均值
- np.median 中位数
- np.percentile 百分位数
- np.argmin 最小值对应的下标
- np.argmax 最大值对应的下标
- np.std 标准差
- np.var 方差
- np.power 次方,求幂
- np.argwhere 按条件查找
4、操作文件
使用panda打开height.csv文件获取其中数据
5、ndarray矩阵操作
1、基本矩阵操作
【1】算术运算符:加减乘除
【2】矩阵积np.dot()
2、广播机制
6、ndarray排序
1、快速排序