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,这就是数据科学界的"黄金组合"。

相关推荐
Uncommon.20 小时前
使用pandas处理csv并转为张量
pytorch·python·深度学习·pandas
STR_Liang3 天前
pandas.read_html 报错FileNotFoundError、OSError Traceback (most recent call last)
pandas
菜冻鱼4 天前
Python-sklearn-SVM
开发语言·人工智能·python·机器学习·支持向量机·numpy·sklearn
㳺三才人子4 天前
初探 Data Analysis - Matplotlib
python·plotly·pandas·matplotlib
quantdash_cc4 天前
告别自建 Requests/BS4 网页爬虫:基于 QuantDash 搭建零维保的高性能量化行情流水线
开发语言·爬虫·python·pandas·量化·quantdash
菜冻鱼5 天前
Python-sklearn-评估指标
开发语言·人工智能·python·机器学习·numpy·pandas·sklearn
菜冻鱼5 天前
Python-sklearn-模型选择
开发语言·人工智能·python·机器学习·numpy·pandas·sklearn
quantdash_cc5 天前
基于 QuantDash 5 分钟 K 线的网格交易策略参数网格搜索寻优实战
android·开发语言·pandas·量化·quantdash
FBI HackerHarry浩5 天前
Pandas 库中用于分类变量独热编码(One-Hot Encoding)的函数 pd.get_dummies() 函数
开发语言·人工智能·python·pandas
菜冻鱼5 天前
Python-sklearn-特征工程
开发语言·人工智能·python·机器学习·numpy·matplotlib·sklearn