Python - 数据分析三剑客之NumPy

发布于:2025-07-06 ⋅ 阅读:(12) ⋅ 点赞:(0)

在Python中,NumPyPandasMatplotlib是进行数据分析和数据可视化的三个核心库。它们各自有不同的功能,但经常一起使用来处理和分析数据。

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可以确保所有必要的依赖都被包含在虚拟环境中,使得项目的设置和运行变得简单。

创建虚拟环境
  1. 打开终端或命令提示符。

  2. 导航到你的项目目录。

  3. 运行以下命令来创建一个虚拟环境(例如,名为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 --versionpython3 --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、快速排序


网站公告

今日签到

点亮在社区的每一天
去签到