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与机器学习打下坚实基础。

相关推荐
章豪Mrrey nical14 小时前
前后端分离工作详解Detailed Explanation of Frontend-Backend Separation Work
后端·前端框架·状态模式
Robot侠14 小时前
极简LLM入门指南4
大数据·python·llm·prompt·提示工程
写写闲篇儿15 小时前
微软面试之白板做题
面试·职场和发展
派大鑫wink15 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
程序员爱钓鱼15 小时前
Node.js 编程实战:文件读写操作
前端·后端·node.js
xUxIAOrUIII15 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端
Dolphin_Home15 小时前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法
等....15 小时前
Miniconda使用
开发语言·python
zfj32115 小时前
go为什么设计成源码依赖,而不是二进制依赖
开发语言·后端·golang
Java&Develop15 小时前
Aes加密 GCM java
java·开发语言·python