Python Numpy 库常见用法入门教程
Numpy 是 Python 科学计算库中最基础的库之一,它提供了大量的数学函数和数组操作,可以帮助我们进行高效、快速的科学计算。相比 Python 原生列表,Numpy 数组在内存占用和运算速度上都有显著优势,是数据分析、机器学习和深度学习领域的基石。
本文详细介绍了 Python Numpy 库的基础用法与核心功能。内容涵盖环境安装、数组创建与索引、数学计算与广播机制、矩阵运算、文件读写以及数据筛选排序等关键知识点。通过代码示例展示了如何高效进行科学计算与数据处理,并补充了随机数生成与线性代数模块的使用,旨在帮助读者快速掌握 Numpy 这一科学计算基石。

Numpy 是 Python 科学计算库中最基础的库之一,它提供了大量的数学函数和数组操作,可以帮助我们进行高效、快速的科学计算。相比 Python 原生列表,Numpy 数组在内存占用和运算速度上都有显著优势,是数据分析、机器学习和深度学习领域的基石。
在使用 Numpy 之前,需要确保环境中已安装该库。可以通过 pip 命令进行安装:
pip install numpy
安装完成后,在 Python 脚本中导入通常使用以下别名:
import numpy as np
Numpy 中最基础的数据结构是 ndarray(多维数组),可以通过多种方式创建。
import numpy as np
a = np.array([1, 2, 3])
print(a)
输出结果为:
[1 2 3]
除了 np.array,还可以使用 np.zeros、np.ones、np.arange 等函数快速生成特定数组:
zeros_arr = np.zeros(5) # 全零数组
ones_arr = np.ones((2, 3)) # 全一矩阵
range_arr = np.arange(0, 10, 2) # 步长为 2 的序列
数组的基本操作包括索引、切片、赋值等,支持负数索引和高级索引:
a = np.array([10, 20, 30, 40])
print(a[0]) # 第一个元素
print(a[-1]) # 最后一个元素
print(a[1:3]) # 切片 [20, 30]
a[0] = 100 # 修改值
使用 reshape 可以改变数组的形状而不改变数据:
c = a.reshape(2, 2)
print(c)
Numpy 提供了丰富的数学函数和向量化计算方法,避免了显式循环,极大提升了计算效率。
可以方便地进行求和、均值、方差、标准差等计算:
a = np.array([1, 2, 3, 4, 5])
print(a.sum()) # 总和
print(a.mean()) # 平均值
print(a.var()) # 方差
print(a.std()) # 标准差
广播机制允许不同形状的数组进行算术运算,例如标量与数组、不同维度的数组相加:
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a + b # 对应元素相加
print(c)
# 标量广播
d = a * 2
print(d)
Numpy 中的矩阵运算功能强大,适用于线性代数场景。
使用 np.dot 或 @ 运算符进行矩阵乘法:
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = np.dot(a, b) # 矩阵点积
d = a @ b # Python 3.5+ 语法
print(c)
transposed = a.T # 转置
inverse = np.linalg.inv(a) # 求逆矩阵
Numpy 支持将数组保存为二进制文件或文本文件,便于数据持久化。
a = np.array([1, 2, 3])
np.save('data_array.npy', a) # 保存为 .npy 格式
b = np.load('data_array.npy') # 加载
print(b)
对于 CSV 或文本格式,可以使用 savetxt 和 loadtxt:
np.savetxt('data.txt', a, delimiter=',')
Numpy 强大的布尔索引和排序功能使其成为数据预处理的首选工具。
利用布尔数组直接筛选符合条件的行或元素:
a = np.array([[1, 2], [3, 4], [5, 6]])
mask = a[:, 0] > 2 # 第一列大于 2 的条件
filtered = a[mask] # 筛选结果
print(filtered)
data = np.array([5, 2, 9, 1])
sorted_data = np.sort(data) # 返回排序后的新数组
print(sorted_data)
科学计算常需模拟数据,Numpy 提供多种分布的随机数生成器:
random_ints = np.random.randint(0, 10, size=5)
normal_dist = np.random.randn(3, 3)
numpy.linalg 提供了完整的线性代数求解能力:
from numpy import linalg
A = np.array([[1, 2], [3, 4]])
eigenvalues, eigenvectors = linalg.eig(A)
本文介绍了 Numpy 的核心用法,包括数组创建、运算、矩阵处理及 IO 操作。掌握这些基础功能是进行 Python 数据科学开发的前提。建议在实际项目中多结合 Pandas 和 Matplotlib 使用,以构建完整的数据分析工作流。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online