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 小时前
从零搭建PyTorch计算机视觉模型
人工智能·pytorch·python·计算机视觉
Victor3562 小时前
Redis(112)Redis的主从复制如何实现?
后端
Victor3562 小时前
Redis(113)Redis的哨兵机制如何使用?
后端
♡喜欢做梦2 小时前
Spring IOC
java·后端·spring
IT_陈寒2 小时前
Vue 3性能优化实战:7个关键技巧让我的应用加载速度提升50%
前端·人工智能·后端
晚秋大魔王2 小时前
基于python的jlink单片机自动化批量烧录工具
前端·python·单片机
胖哥真不错2 小时前
Python基于PyTorch实现多输入多输出进行CNN卷积神经网络回归预测项目实战
pytorch·python·毕业设计·课程设计·毕设·多输入多输出·cnn卷积神经网络回归预测
程序员-小李2 小时前
基于PyTorch的动物识别模型训练与应用实战
人工智能·pytorch·python
晨非辰2 小时前
【数据结构初阶】--从排序算法原理分析到代码实现操作,参透插入排序的奥秘!
c语言·开发语言·数据结构·c++·算法·面试·排序算法