numpy与pandas 的介绍

在 Python 的数据科学版图中,NumPyPandas 是两座不可撼动的基石。如果把数据分析比作一场烹饪,那么 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,这就是数据科学界的"黄金组合"。

相关推荐
小大宇1 天前
python pandas dataFrame sqlAlchemy案例
python·pandas
chouchuang2 天前
day-040-Pandas可视化与实战
pandas
chouchuang5 天前
day-037-Pandas数据读取
pandas
benchmark_cc6 天前
如何用 Python 进行多周期 K 线合成与时区对齐?基于 QuantDash 与 Pandas 的量化数据清洗实战(附 GitHub 源码)
开发语言·python·github·盯盘·pandas·quantdash·量化数据
广州景颐光电6 天前
3种NumPy向量化实测:光源数据处理从2.3秒压到12.3ms
numpy
梅雅达编程笔记8 天前
零基础学 Python 第14章 | 模块、包与第三方库
开发语言·python·django·numpy·pandas
梅雅达编程笔记8 天前
零基础学 Python 第15章 | 类与对象:面向对象编程入门
开发语言·python·django·numpy·pandas
pulinzt8 天前
Tableau的基础使用
数据库·numpy
benchmark_cc8 天前
Python 量化核心基础:前复权、后复权与不复权有什么区别?基于 QuantDash 的数据处理与回测避坑指南
开发语言·python·pandas·量化策略·量化交易·quantdash