numpy与pandas 的介绍

在 Python 的数据科学版图中,NumPy 和 Pandas 是两座不可撼动的基石。如果把数据分析比作一场烹饪,那么 NumPy 就是那个高效的多功能切菜机 ,而 Pandas 则是那个有条不紊的食材收纳柜与记账本。

下面为你详细介绍这两大神器,并结合生活例子与代码进行对比说明。


一、 NumPy:数值计算的"性能怪兽"

NumPy (Numerical Python) 是 Python 科学计算的核心库。它最伟大的贡献是引入了 ndarray(N 维数组)对象。

1. 生活中的例子:超市里的同款罐头阵列

想象超市仓库里堆放着几千箱完全一样的可乐罐头。

  • 普通 Python 列表:就像是你把这些罐头散放在大袋子里,每个罐头还可能有大有小。你想数数或搬运时,得一个一个确认,非常慢。
  • NumPy 数组:就像是整整齐齐码在托盘里的罐头,规格统一。因为整齐(内存连续),你可以直接用叉车一整排地搬运,计算速度极快。

2. 核心特点:

  • 同质性:数组里的所有元素必须是同一种类型(比如全是整数或全是浮点数)。
  • 广播机制(Broadcasting):可以一次性对整组数据进行加减乘除,不需要写循环。
  • 底层 C 语言编写:速度比原生 Python 列表快 10-100 倍。

3. 代码示例:

python 复制代码
import numpy as np

# 创建一个 NumPy 数组
prices = np.array([10, 20, 30, 40])

# 广播机制:所有价格打 9 折
discounted_prices = prices * 0.9

print(discounted_prices) 
# 输出:[ 9. 18. 27. 36.] -> 一行代码搞定,不需要写 for 循环!

二、 Pandas:数据处理的"全能管家"

Pandas 是基于 NumPy 构建的,专门为解决结构化数据分析 而生。它提供了两种核心结构:Series(一维带标签)和 DataFrame(二维表格)。

1. 生活中的例子:超级 Excel 表格

想象你有一张员工工资表:里面有"姓名"(字符串)、"入职日期"(时间)、"月薪"(数字)。

  • NumPy 面对这张表会很头疼,因为它要求所有数据类型一致。
  • Pandas 则是处理这类表格的大师。它能自动识别表头,处理缺失的空位(NaN),还能根据"部门"进行分组汇总。它就像是一个自带编程能力的 Excel。

2. 核心特点:

  • 异质性:同一张表里,可以一列存名字,一列存年龄,一列存布尔值。
  • 索引(Index):每一行每一列都有标签,你可以直接说"找张三的月薪",而不是数张三在第几行。
  • 强大的清洗功能:一行代码过滤掉脏数据、填充缺失值。

3. 代码示例:

python 复制代码
import pandas as pd

# 创建一个 DataFrame (像不像一个字典组成的表格?)
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'Salary': [5000, 6000, 7000]
}
df = pd.DataFrame(data)

# 统计分析:一行代码搞定基本情况
print(df.describe())

# 过滤:找出年龄大于 28 的员工
rich_older_staff = df[df['Age'] > 28]
print(rich_older_staff)

三、 NumPy 与 Pandas 的深度对比:谁更强?

其实它们不是竞争关系,而是上下级关系:

特性 NumPy Pandas
主要对象 ndarray (数组) DataFrame (数据框) / Series
数据类型 必须相同 (Homogeneous) 可以不同 (Heterogeneous)
查询方式 索引下标 (如 arr[0,1]) 标签查询 (如 df['Salary'])
擅长领域 纯数学运算、矩阵变换、信号处理 表格操作、数据清洗、时间序列、SQL式连接
关系 它是 Pandas 的地基 它是构建在 NumPy 之上的摩天大楼

四、 它们如何协同工作?

在实际的数据分析流程中,它们的角色分工非常明确:

  1. Pandas 负责"迎宾与整理": 从 CSV、Excel 或 SQL 数据库中读取杂乱无章的数据。Pandas 负责对齐日期、剔除重复项、处理"空值",并把数据整理成整齐的 DataFrame。

  2. NumPy 负责"高强度计算": 当 Pandas 整理好数据后,如果你需要进行复杂的线性代数运算、傅里叶变换或者输入到机器学习模型(如 Scikit-learn)中,数据通常会转化为 NumPy 数组进行高速跑分。

五、 总结

  • 如果你在做科学计算、图像处理或纯数学逻辑 ,请拥抱 NumPy。
  • 如果你在做财务分析、报表处理、商业洞察或数据清洗 ,请拥抱 Pandas。

掌握了这两个库,你就拥有了进入 Python 数据分析大门的钥匙。绝大多数时候,你会先用 Pandas 读数据,再在需要底层优化时调用 NumPy,这就是数据科学界的"黄金组合"。

相关推荐
烂蜻蜓4 小时前
Pandas入门教程(一):初识Pandas——数据分析的利器
数据挖掘·数据分析·pandas
benchmark_cc6 小时前
实时行情系统如何避免无意义的重复请求?从请求去重到缓存设计
大数据·开发语言·python·pandas·量化交易·股票数据·quantdash
benchmark_cc16 小时前
量化系统架构设计:为什么应该将数据获取与策略逻辑解耦?
python·数据分析·pandas·量化交易·股票数据·quantdash
2601_966949651 天前
如何判断实时行情数据是否已经更新?从时间戳、交易时段到行情有效性
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
郝学胜-神的一滴1 天前
NumPy深度解析|Python数值计算的基石,告别低效for循环
开发语言·人工智能·python·程序人生·numpy·量化投资
大鹏的NLP博客1 天前
目标检测中的 AP 计算:单调包络与 NumPy 双重翻转
目标检测·numpy·ap
Helix2502 天前
Python数据分析实战:Pandas清洗豆瓣短评与情感分析完整指南
python·pandas·数据清洗·情感分析··snownlp·文本数据处理
言乐62 天前
Python于LOLM针对伊泽瑞尔的数据分析
开发语言·python·机器学习·数据分析·pandas
梅雅达编程笔记2 天前
15_综合实战全流程
pandas·数据清洗·seaborn·可视化分析·python数据实战·数据分析全流程·系列收尾
chde2Wang3 天前
numpy学习3
学习·numpy