跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Python NumPy 入门指南:数据处理与科学计算基础

NumPy 是 Python 科学计算的基础库,提供高性能多维数组对象和工具。作为数据分析、机器学习等领域的基石,几乎所有相关框架都建立在 NumPy 之上。内容涵盖 NumPy 的安装导入、核心功能如数组属性索引运算广播机制、高级功能包括变形拼接统计函数,以及在实际项目中的图像处理机器学习预处理应用。同时介绍性能优化技巧,如避免循环和使用视图。掌握 NumPy 有助于快速上手数据处理与科学计算任务。

Eee_123发布于 2026/3/22更新于 2026/6/2128 浏览
Python NumPy 入门指南:数据处理与科学计算基础

Python NumPy 入门指南

一、NumPy 是什么?为什么它如此重要?

NumPy(Numerical Python)是 Python 中用于科学计算的基础包。它提供了一个强大的 N 维数组对象,以及用于处理这些数组的各种工具。NumPy 是 Python 数据科学生态系统的基石,几乎所有的机器学习框架(如 TensorFlow、PyTorch)和数据分析库(如 Pandas)都建立在 NumPy 之上。

NumPy 受欢迎的原因主要有三点:

  1. 性能强大:底层用 C 语言编写,运算速度比纯 Python 快几个数量级
  2. 接口简单:提供了大量简洁高效的数组操作函数
  3. 生态完善:与 SciPy、Matplotlib、Pandas 等库完美配合

二、NumPy 安装与基础使用

2.1 安装 NumPy

使用 pip 命令安装:

pip install numpy

如果使用 Anaconda,已自带 NumPy,无需额外安装。

2.2 导入 NumPy

通常按惯例导入:

import numpy as np
2.3 创建第一个 NumPy 数组
import numpy as np
# 创建一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
# 创建二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)

输出结果:

[1 2 3 4 5]
[[1 2 3]
 [4 5 6]]

三、NumPy 核心功能详解

3.1 数组属性

每个 NumPy 数组都有重要属性:

arr = np.array([[1, 2, ], [, , ]])
(, arr.ndim)
(, arr.shape)
(, arr.size)
(, arr.dtype)
3
4
5
6
print
"数组维度:"
print
"数组形状:"
print
"数组元素总数:"
print
"数组元素类型:"
3.2 创建特殊数组
# 创建全零数组
zeros = np.zeros((2, 3))
# 创建全 1 数组
ones = np.ones((3, 2))
# 创建单位矩阵
eye = np.eye(3)
# 创建等差数列
lin = np.linspace(0, 10, 5)
# 创建随机数组
rand = np.random.rand(2, 2)
3.3 数组索引与切片
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 获取单个元素
print(arr[1, 2])
# 获取一行
print(arr[1])
# 获取一列
print(arr[:, 1])
# 切片
print(arr[0:2, 1:3])
3.4 数组运算

NumPy 支持各种数学运算:

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 加法
print(a + b)
# 乘法(元素级)
print(a * b)
# 点积
print(np.dot(a, b))
# 平方
print(a**2)
# 平方根
print(np.sqrt(4))
# 求和
print(a.sum())
# 均值
print(a.mean())
# 三角函数
print(np.sin(a))

常见数组运算如下表:

运算符号 / 函数例子
逐元素加+a + b
逐元素乘*a * b
矩阵乘@ 或 np.dota @ b.T
平方根np.sqrt(a)逐元素
求和a.sum()按列求和
均值a.mean()...
3.5 广播机制
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([10, 20, 30])
# b 会被广播到与 a 相同的形状
print(a + b)

四、NumPy 高级功能

4.1 数组变形
arr = np.arange(6)
# 改变形状
print(arr.reshape(2, 3))
# 展平数组
print(arr.flatten())
4.2 数组拼接与分割
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])
# 垂直拼接
print(np.vstack((a, b)))
# 水平拼接
c = np.array([[7], [8]])
print(np.hstack((a, c)))
# 数组分割
arr = np.arange(9).reshape(3, 3)
print(np.hsplit(arr, 3))
4.3 统计函数
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("平均值:", np.mean(data))
print("中位数:", np.median(data))
print("标准差:", np.std(data))
print("最大值:", np.max(data))
print("最小值:", np.min(data))
print("每列的和:", np.sum(data, axis=0))
print("每行的和:", np.sum(data, axis=1))

五、NumPy 在实际项目中的应用

NumPy 在图像处理、机器学习数据预处理、数值计算等场景广泛使用。

5.1 图像处理
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np

img = np.array(Image.open('image.png'))
fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.imshow(img)
gray = np.mean(img, axis=2)
ax2.imshow(gray, cmap='gray')
plt.show()
5.2 机器学习数据预处理
# 特征标准化
data = np.random.rand(100, 5)
mean = np.mean(data, axis=0)
std = np.std(data, axis=0)
normalized = (data - mean) / std
np.random.shuffle(normalized)
5.3 数值计算
# 解线性方程组
A = np.array([[2, 1], [1, 3]])
b = np.array([4, 5])
x = np.linalg.solve(A, b)
# 计算特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(A)

六、NumPy 性能优化技巧

  1. 避免循环:尽量使用 NumPy 内置函数代替 Python 循环
  2. 使用视图而非副本:切片操作返回的是视图,不会复制数据
  3. 预分配内存:对于大型数组,先创建好再填充
  4. 使用适当的数据类型:如 np.float32 比 np.float64 节省内存
import time
import numpy as np

n = 1_000_000

# 不好的做法
start = time.time()
result = []
for i in range(n):
    result.append(i**2)
result = np.array(result)
print("it cost: {}".format(time.time() - start))

# 好的做法
start = time.time()
result = np.arange(n)**2
print("it cost: {}".format(time.time() - start))

七、总结

NumPy 作为 Python 科学计算的基石,提供了高效的多维数组对象、丰富的数学函数库、强大的广播机制、便捷的线性代数运算及与其他科学计算库的良好兼容性。掌握 NumPy 是打开 Python 数据科学大门的关键,无论是数据分析、机器学习还是科学计算,都是不可或缺的工具。

目录

  1. Python NumPy 入门指南
  2. 一、NumPy 是什么?为什么它如此重要?
  3. 二、NumPy 安装与基础使用
  4. 2.1 安装 NumPy
  5. 2.2 导入 NumPy
  6. 2.3 创建第一个 NumPy 数组
  7. 创建一维数组
  8. 创建二维数组
  9. 三、NumPy 核心功能详解
  10. 3.1 数组属性
  11. 3.2 创建特殊数组
  12. 创建全零数组
  13. 创建全 1 数组
  14. 创建单位矩阵
  15. 创建等差数列
  16. 创建随机数组
  17. 3.3 数组索引与切片
  18. 获取单个元素
  19. 获取一行
  20. 获取一列
  21. 切片
  22. 3.4 数组运算
  23. 加法
  24. 乘法(元素级)
  25. 点积
  26. 平方
  27. 平方根
  28. 求和
  29. 均值
  30. 三角函数
  31. 3.5 广播机制
  32. b 会被广播到与 a 相同的形状
  33. 四、NumPy 高级功能
  34. 4.1 数组变形
  35. 改变形状
  36. 展平数组
  37. 4.2 数组拼接与分割
  38. 垂直拼接
  39. 水平拼接
  40. 数组分割
  41. 4.3 统计函数
  42. 五、NumPy 在实际项目中的应用
  43. 5.1 图像处理
  44. 5.2 机器学习数据预处理
  45. 特征标准化
  46. 5.3 数值计算
  47. 解线性方程组
  48. 计算特征值和特征向量
  49. 六、NumPy 性能优化技巧
  50. 不好的做法
  51. 好的做法
  52. 七、总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 华为 OD 机试动态规划与双指针算法实战
  • 从 AI 工具使用者到创作者:技术变现之路
  • 使用 Python 进行 RFM 分析
  • Python 中 GraphQL 的完整实现:从基础到企业级实战
  • 前端微前端架构:如何避免应用变成巨石应用
  • VSCode 远程连接 SSH 服务器配置指南
  • OpenClaw 实战:让 AI 拥有“眼睛“——摄像头访问完全指南
  • GitHub 日榜:AI 工具链与工程化实践热点
  • GitHub Copilot 性能优化实战:提升 AI 代码建议响应速度
  • ROS 基于 v4l2loopback 虚拟摄像头的 YOLO 目标检测与机器人控制
  • RustFS Docker 单节点部署指南
  • 从 vw/vh 到 clamp():前端响应式设计痛点与进化
  • 延迟退休背景下 AI 工具在职业规划与健康管理中的应用
  • 华三 H3C 交换机 NTP 时间同步配置方法
  • GitHub 仓库下载 ZIP 包与 git clone 克隆的区别
  • DeepSeek-R1-Distill-Llama-8B Python 爬虫实战:数据采集与清洗
  • FPGA 实现 HDMI 输出完全攻略:从接口原理到 4K 显示全流程
  • Qt 与 Web 混合编程:CEF 与 QCefView 深度解析
  • Faster Whisper 语音识别工具安装与性能优化指南
  • 腿式机器人 IMU 融合与状态估计实战解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online