Python编程实战——Python实用工具与库:Numpy基础

在数据科学、人工智能与科学计算领域中,Numpy(Numerical Python)是Python中最重要的基础库之一。它为Python提供了强大的**多维数组(ndarray)**对象,并支持高效的向量化计算,让数据处理速度提升数十倍。 本篇博客将带你快速入门Numpy,从安装、核心数据结构、常用操作到实战应用,一步步掌握这个数据计算神器。


一、为什么要学习 Numpy

Python的列表虽然灵活,但在大规模数值计算中效率并不理想。 Numpy通过底层C语言实现的高效算法,让我们能够:

  • 快速执行矩阵运算和统计分析;
  • 实现科学计算和机器学习的数学基础;
  • 轻松进行向量化操作,避免低效的循环。

一句话总结:Numpy让Python像Matlab一样强大,但更自由。


二、安装Numpy

在命令行中使用pip即可安装:

bash 复制代码
pip install numpy

安装完成后,使用以下命令验证:

python 复制代码
import numpy as np
print(np.__version__)

三、Numpy的核心:ndarray

Numpy的核心数据结构是ndarray,即N维数组对象。 相比Python列表,它有以下优势:

  • 占用内存更少;
  • 支持矢量化计算;
  • 支持广播机制。

示例:

python 复制代码
import numpy as np

arr = np.array([1, 2, 3, 4])
print(arr)            # 输出:[1 2 3 4]
print(arr.dtype)      # 数据类型
print(arr.ndim)       # 数组维度
print(arr.shape)      # 形状

四、创建Numpy数组的常见方法

Numpy提供了多种快速创建数组的方式:

python 复制代码
# 从列表创建
a = np.array([1, 2, 3])

# 创建全零数组
zeros = np.zeros((2,3))

# 创建全一数组
ones = np.ones((3,3))

# 创建等差数列
arange = np.arange(0, 10, 2)

# 创建随机数组
rand = np.random.rand(2,2)

这些函数能帮助我们快速生成所需数据结构,为后续计算打下基础。


五、Numpy数组的常用操作

1. 数组索引与切片

python 复制代码
arr = np.array([10, 20, 30, 40, 50])
print(arr[1:4])  # [20 30 40]

2. 数组运算(向量化操作)

python 复制代码
a = np.array([1,2,3])
b = np.array([4,5,6])
print(a + b)   # [5 7 9]
print(a * b)   # [4 10 18]

3. 数学函数

python 复制代码
x = np.array([1, 2, 3])
print(np.sqrt(x))
print(np.exp(x))
print(np.mean(x))

4. 矩阵操作

python 复制代码
A = np.array([[1,2],[3,4]])
B = np.array([[5,6],[7,8]])
print(np.dot(A,B))  # 矩阵乘法

六、Numpy的广播机制

广播机制让不同形状的数组之间也能运算。例如:

python 复制代码
a = np.array([[1,2,3],
              [4,5,6]])
b = np.array([10,20,30])
print(a + b)

结果:

lua 复制代码
[[11 22 33]
 [14 25 36]]

Numpy会自动扩展b的形状与a匹配,实现高效运算。


七、实战:计算学生成绩平均分

python 复制代码
import numpy as np

scores = np.array([
    [85, 90, 88],
    [78, 80, 82],
    [90, 95, 92]
])

avg_per_student = np.mean(scores, axis=1)
avg_per_subject = np.mean(scores, axis=0)

print("每个学生平均分:", avg_per_student)
print("每门课平均分:", avg_per_subject)

输出:

css 复制代码
每个学生平均分: [87.66666667 80.         92.33333333]
每门课平均分: [84.33333333 88.33333333 87.33333333]

八、小结

Numpy是Python科学计算的基石,理解并熟练使用它,能让你的程序执行效率成倍提升。 本篇你已经掌握了:

  • Numpy的核心数据结构 ndarray
  • 数组创建与运算方法
  • 广播机制与矩阵操作
  • 实战案例:成绩平均分计算

接下来,你可以进一步学习Numpy的高级索引 、线性代数函数 、统计分析等内容,为Pandas与机器学习打下坚实基础。

相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
爱勇宝3 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
qq_426003963 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
胡写代码3 天前
别再前后端各写一套表单校验了
java·后端
长沙三为智能科技3 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
晨米酱3 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent