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

相关推荐
aifannihao8 小时前
AI 学习第 5 课:手推逻辑回归与交叉熵,L2 把可分数据的权重按住
人工智能·机器学习·逻辑回归·numpy·学习路线
2601_967987371 天前
图灵星环:Python NumPy数组的维度压缩squeeze删除单维度
机器学习·numpy·数据预处理·数组处理·维度压缩
databook1 天前
经常听到的透视表是干什么的?
python·数据分析·pandas
benchmark_cc3 天前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
benchmark_cc3 天前
用 00700.HK 做港股行情清洗:字段核对、校验与个人量化开发实践
python·数据分析·pandas·量化交易·股票数据·quantdash
第九序言T3 天前
数据分析岗 Pandas 面试题 20 道(上):概念与读代码
python·数据分析·pandas·数据处理
2601_966949653 天前
如何封装 qd.klines.batch(),让批量 K 线查询函数在多个策略中复用?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
Blockbuater_drug3 天前
《经典机器学习实战》第 2 课:回归入门——环境、工具与数据准备
线性回归·pandas·scikit-learn·数据可视化·数据清洗·最小二乘法·conda环境
烂蜻蜓4 天前
Pandas入门教程(十六):常用函数速查手册——读写、清洗、选择、排序、分组与统计
pandas
quantdash_cc5 天前
个人开发者用 QuantDash 读取港股行情:00700.HK 的 Python 函数封装与校验实践
python·数据分析·pandas·量化交易·股票数据·quantdash