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

相关推荐
d***95623 分钟前
爬虫自动化(DrissionPage)
爬虫·python·自动化
i***22075 分钟前
springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice
spring boot·后端·docker
APIshop10 分钟前
Python 零基础写爬虫:一步步抓取商品详情(超细详解)
开发语言·爬虫·python
e***877035 分钟前
windows配置永久路由
android·前端·后端
二川bro37 分钟前
AutoML自动化机器学习:Python实战指南
python·机器学习·自动化
代码or搬砖40 分钟前
SpringMVC的执行流程
java·spring boot·后端
杨超越luckly1 小时前
基于 Overpass API 的城市电网基础设施与 POI 提取与可视化
python·数据可视化·openstreetmap·电力数据·overpass api
极光代码工作室2 小时前
基于SpringBoot的流浪狗管理系统的设计与实现
java·spring boot·后端
Rust语言中文社区2 小时前
【Rust日报】Dioxus 用起来有趣吗?
开发语言·后端·rust
小灰灰搞电子2 小时前
Rust Slint实现颜色选择器源码分享
开发语言·后端·rust