news 2026/5/1 8:10:12

Python NumPy入门指南:数据处理科学计算的瑞士军刀

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python NumPy入门指南:数据处理科学计算的瑞士军刀

Python NumPy 入门指南:数据处理与科学计算的瑞士军刀

NumPy(Numerical Python)是 Python 科学计算生态的核心库,几乎所有数据科学、机器学习、物理模拟等领域的高性能库(如 Pandas、SciPy、TensorFlow、PyTorch)都建立在它之上。它提供了高效的多维数组对象ndarray和大量数学函数,让 Python 处理数值计算时速度接近 C 语言。

1. 为什么选择 NumPy?
特性说明与纯 Python 列表对比
性能极高底层用 C 实现,向量化运算避免 Python 循环相同操作快 10~100 倍
内存高效同类型数据连续存储,无对象开销列表每个元素都是独立对象,内存浪费
广播机制不同形状数组自动对齐运算列表需手动循环处理
丰富数学函数线性代数、傅里叶变换、随机数等Python 内置数学功能非常有限
多维数组支持支持任意维度数组(1D、2D、3D…)列表嵌套实现多维,操作繁琐

一句话:NumPy 是 Python 进行数值计算的“瑞士军刀”

2. 安装与导入
pipinstallnumpy
importnumpyasnp# 约定俗成的别名print(np.__version__)# 查看版本(2026 年主流版本 >= 2.0)
3. 核心数据结构:ndarray(N-dimensional array)

创建数组

# 从列表创建a=np.array([1,2,3,4])b=np.array([[1,2],[3,4],[5,6]])# 2D 数组# 常用创建函数np.zeros((3,4))# 全 0 数组np.ones((2,3))# 全 1 数组np.full((2,2),7)# 全填 7np.arange(0,10,2)# [0, 2, 4, 6, 8]np.linspace(0,1,5)# 等间隔 5 个数:[0., 0.25, 0.5, 0.75, 1.]np.random.random((3,3))# 随机浮点数 [0,1)np.eye(4)# 4x4 单位矩阵

基本属性

arr=np.array([[1,2,3],[4,5,6]])print(arr.ndim)# 维度数:2print(arr.shape)# 形状:(2, 3)print(arr.size)# 元素总数:6print(arr.dtype)# 数据类型:int64print(arr.itemsize)# 每个元素字节数:8
4. 索引、切片与花式索引
arr=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])arr[1,2]# 第1行第2列 → 7arr[0,:]# 第0行 → [1,2,3,4]arr[:,1]# 第1列 → [ 2, 6,10]arr[0:2,1:3]# 子数组 → [[2, 3], [6, 7]]# 布尔索引arr[arr>7]# [ 8, 9,10,11,12]# 花式索引arr[[0,2],[1,3]]# 取 (0,1) 和 (2,3) 位置 → [2, 12]
5. 向量化运算与广播(Broadcasting)

核心优势:无需循环,直接对整个数组运算。

a=np.array([1,2,3])b=np.array([4,5,6])a+b# [5, 7, 9]a*3# [3, 6, 9]np.sqrt(a)# [1. , 1.414, 1.732]a>2# [False, False, True]# 广播:不同形状自动扩展A=np.array([[1,2,3],[4,5,6]])# (2,3)b=np.array([10,20,30])# (3,)A+b# 自动将 b 广播为 (2,3) 形状# 结果:# [[11, 22, 33],# [14, 25, 36]]
6. 常用数学与统计函数
arr=np.array([1,2,3,4,5])np.sum(arr)# 15np.mean(arr)# 3.0np.std(arr)# 标准差np.max(arr),np.min(arr)np.argmax(arr)# 最大值索引:4# 轴向运算(axis 参数)matrix=np.array([[1,2],[3,4]])matrix.sum(axis=0)# 按列求和 → [4, 6]matrix.sum(axis=1)# 按行求和 → [3, 7]
7. 线性代数(numpy.linalg)
A=np.array([[1,2],[3,4]])b=np.array([5,6])np.dot(A,b)# 矩阵乘向量 → [17, 39]np.linalg.inv(A)# 求逆np.linalg.det(A)# 行列式:-2.0np.linalg.eig(A)# 特征值与特征向量
8. 数组变形与拼接
arr=np.arange(6)arr.reshape(2,3)# 重塑形状 → [[0,1,2],[3,4,5]]arr.resize(2,3)# 原地修改# 拼接a=np.array([1,2])b=np.array([3,4])np.concatenate([a,b])# [1,2,3,4]np.vstack([a,b])# 垂直堆叠np.hstack([a,b])# 水平堆叠
9. 性能对比:NumPy vs 纯 Python
importtime# 纯 Python 列表size=1000000list1=list(range(size))list2=list(range(size))start=time.time()result=[x+yforx,yinzip(list1,list2)]print("Python 列表耗时:",time.time()-start)# NumPyarr1=np.arange(size)arr2=np.arange(size)start=time.time()result=arr1+arr2print("NumPy 耗时:",time.time()-start)# 输出:NumPy 通常快 50~100 倍!
10. 入门建议与进阶路径
  • 练习平台:LeetCode(数组题)、Kaggle(数据分析入门)
  • 进阶方向
    • Pandas:基于 NumPy 的表格数据处理
    • Matplotlib/Seaborn:数据可视化
    • SciPy:科学计算扩展
    • scikit-learn:机器学习
    • PyTorch/TensorFlow:深度学习(张量基于 NumPy)

一句话总结
NumPy 是 Python 科学计算的基石——掌握它,你就拥有了高效处理海量数值数据的“瑞士军刀”!

准备好开始你的 NumPy 之旅了吗?试试运行上面的代码,感受向量化运算的魅力吧~如果想继续学习 Pandas、数据可视化或机器学习实战,随时告诉我,我继续带你进阶!🚀

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:29:30

Windows用户如何避免常见部署问题?权威解答来了

Windows用户如何避免常见部署问题?权威解答来了 背景与挑战:从Linux到Windows的迁移痛点 随着AI生成技术的普及,越来越多开发者希望在本地Windows系统上运行如Image-to-Video图像转视频生成器这类基于深度学习的应用。然而,尽管原…

作者头像 李华
网站建设 2026/4/30 16:10:27

营销团队如何3天上线动态海报系统?

营销团队如何3天上线动态海报系统? 从静态到动态:营销内容的效率革命 在数字营销竞争日益激烈的今天,视觉冲击力和内容更新速度直接决定用户点击率与转化效果。传统海报设计流程依赖设计师手动制作、反复修改,周期长、成本高。而…

作者头像 李华
网站建设 2026/4/11 20:09:37

导师严选2026 AI论文写作软件TOP9:继续教育必备测评

导师严选2026 AI论文写作软件TOP9:继续教育必备测评 2026年AI论文写作软件测评:为何值得一看 随着人工智能技术在学术领域的不断渗透,AI论文写作工具已成为科研人员和继续教育学员不可或缺的辅助工具。然而,市场上产品繁多&#x…

作者头像 李华
网站建设 2026/4/21 3:30:46

开发者必看:如何在Windows环境部署Image-to-Video模型

开发者必看:如何在Windows环境部署Image-to-Video模型 🚀 背景与目标:为何需要本地化部署I2VGen-XL? 随着AIGC技术的爆发式发展,图像到视频(Image-to-Video, I2V)生成已成为内容创作、影视预演…

作者头像 李华
网站建设 2026/4/25 20:08:19

Kimi同源技术栈?这些开源模型值得关注

Kimi同源技术栈?这些开源模型值得关注 Image-to-Video图像转视频生成器 二次构建开发by科哥 在AIGC(人工智能生成内容)领域,图像到视频(Image-to-Video, I2V)生成正成为极具潜力的技术方向。近期&#xff0…

作者头像 李华
网站建设 2026/4/18 5:38:31

JVM 堆内存分代

今天我们一起来聊一聊 JVM 堆内存。 Java Heap(堆内存)由 Young Generation(新生代,约占 1/3 )和 Old Generation(老年代,约占 2/3 )组成。 Young Generation 又由 Eden Space&…

作者头像 李华