NumPy 是 Python 科学计算的基础库,其函数体系覆盖数组创建、结构变换、索引操作、数学运算、统计分析与线性代数等多个方面。由于接口分散且数量众多,缺乏统一视角往往不利于系统理解与高效查阅。本手册以功能分类为主线,对常用函数进行结构化整理,建立清晰的知识框架,既可作为查阅工具,也可作为系统学习 NumPy 的参考。
点击分组标题可查阅详细说明。
1 从对象或现有数据构造
array()
asarray()
asanyarray()
copy()
fromiter()
frombuffer()
fromfile()
fromstring()
2 初始化与占位创建
zeros()
ones()
empty()
full()
3 按已有数组模板创建
zeros_like()
ones_like()
empty_like()
full_like()
4 按数值序列创建
arange()
linspace()
logspace()
geomspace()
5 按结构规则创建
eye()
identity()
tri()
tril()
triu()
diag()
diagflat()
6 网格与坐标创建
indices()
meshgrid()
7 按函数规则创建
fromfunction()
8 按随机数分布创建
NumPy 提供随机数生成模块 numpy.random。当前推荐使用 Generator 随机数接口。
注:本篇主要整理 ndarray 的常用属性,虽非函数,但为便于统一检索,仍纳入本手册体系。
1 结构属性
shape
ndim
size
2 类型属性
dtype
itemsize
3 存储与内存属性
nbytes
base
data
4 内存布局属性
strides
flags
5 结构变换相关属性
T
6 复数相关属性
real
imag
注:where、compress、extract、nonzero、argwhere 等函数在不同语境中同时具有“索引定位”与“条件筛选”双重角色,本篇侧重其索引与提取语义。
1 索引位置获取
argmax()
argmin()
argwhere()
nonzero()
flatnonzero()
2 条件索引
where()
3 元素提取与选择
take()
choose()
take_along_axis()
compress()
extract()
ix_()
4 索引变换与坐标转换
unravel_index()
ravel_multi_index()
5 对角线与轴向提取
diagonal()
trace()
1 写入与替换
put()
put_along_axis()
place()
putmask()
copyto()
2 插入元素
insert()
3 删除元素
delete()
4 数组填充
fill() -- ndarray 方法
1 形状调整
reshape()
resize()
2 数组展平
ravel()
flatten()
3 维度变化
squeeze()
expand_dims()
4 维度保证
atleast_1d()
atleast_2d()
atleast_3d()
5 轴变换
transpose()
swapaxes()
moveaxis()
rollaxis()
1 沿已有轴拼接
concatenate()
concat()
2 沿新轴堆叠
stack()
3 分块拼接(结构拼接)
block()
4 按方向组织的便捷拼接接口
vstack()
hstack()
dstack()
5 列向量/行方向便捷接口
column_stack()
row_stack() -- 已弃用,不推荐继续使用
6 简化拼接接口
append()
7 其它常用快捷拼接语法
r_
c_
1 元素级重复
repeat()
2 结构级复制
tile()
3 广播机制扩展
broadcast_to()
broadcast_arrays()
1 等分拆分
split()
2 不等分拆分
array_split()
3 按方向拆分接口(基于 split)
hsplit()
vsplit()
dsplit()
4 堆叠的逆操作
unstack()
注:NumPy 中“索引”与“条件筛选”在实现上高度耦合。本篇侧重依据布尔条件进行过滤、提取与逻辑组合;部分函数因此与“数组索引与切片”一篇存在交叉。
1 条件筛选与提取
where()
extract()
compress()
2 索引获取
nonzero()
argwhere()
3 条件分支选择
select()
piecewise()
4 集合判断
isin()
5 逻辑运算
logical_and()
logical_or()
logical_not()
logical_xor()
1 排序操作
sort()
2 索引排序
argsort()
lexsort()
3 部分排序
partition()
argpartition()
4 搜索定位
searchsorted()
5 去重/唯一值提取
unique()
1 基本数值运算
abs()
fabs()
negative()
square()
sqrt()
cbrt()
reciprocal()
NumPy 还提供基础算术 ufunc(add、subtract、multiply、divide),但通常直接使用运算符(+、-、*、/)更为常见。
2 幂与指数运算
power()
exp()
3 对数运算
log()
log10()
log2()
4 三角函数与角度转换
4.1 三角函数
sin()
cos()
tan()
4.2 逆三角函数
arcsin()
arccos()
arctan()
arctan2()
4.3 角度与弧度转换
deg2rad() / radians()
rad2deg() / degrees()
5 取整与数值限制
ceil()
floor()
around()
round() / around()
trunc()
clip()
sign()
signbit()
copysign()
mod()
fmod()
6 逐元素最大值/最小值
maximum()
minimum()
fmax()
fmin()
7 向量与几何计算
hypot()
8 双曲函数与反双曲函数
8.1 双曲函数
sinh()
cosh()
tanh()
8.2 反双曲函数
arcsinh()
arccosh()
arctanh()
9 指数与对数的数值稳定函数
log1p()
expm1()
10 数值判断
isfinite()
isinf()
isnan()
11 常用数学常量
注:本节一并收录数值计算中常用的 NumPy 数学常量,便于统一检索。
pi
e
inf
nan
1 基本统计量
sum()
prod()
mean()
average()
count_nonzero()
2 极值运算
max()
min()
ptp()
3 位置索引函数
argmax()
argmin()
4 累计运算
cumsum()
cumprod()
5 离散程度函数
std()
var()
6 顺序统计函数
median()
percentile()
quantile()
7 逻辑聚合运算
any()
all()
8 NaN 安全聚合函数
nansum()
nanprod()
nanmean()
nanmax()
nanmin()
nanstd()
nanvar()
nanmedian()
nanpercentile()
nanquantile()
nancumsum()
nancumprod()
NumPy 提供了一组与线性代数相关的函数,其中相当一部分集中在 numpy.linalg 模块中,也有部分接口位于 NumPy 顶层命名空间。
1 矩阵与向量乘法及幂运算
matmul()
dot()
multi_dot()
matrix_power()
2 矩阵分解
svd()
svdvals()
qr()
cholesky()
3 线性方程组求解
solve()
lstsq()
4 矩阵特征值与特征向量
eig()
eigh()
eigvals()
eigvalsh()
5 矩阵范数与条件数
norm()
cond()
6 矩阵逆与伪逆
inv()
pinv()
7 矩阵行列式与秩
det()
matrix_rank()
slogdet()
1 NumPy 二进制文件读写(.npy)
save()
load()
2 多数组压缩文件读写(.npz)
savez()
savez_compressed()
3 文本文件读写
savetxt()
loadtxt()
genfromtxt()
4 原始二进制文件读写
fromfile()
tofile()
NumPy 随机数体系分为 legacy API 与 Generator API。新代码通常应优先使用 Generator API,并尽量避免在同一随机流程中与 legacy 接口混用。
1 随机数生成器控制
seed()
2 均匀分布随机数
rand()
random()
uniform()
random_sample()
ranf()
sample()
3 整数随机数
randint()
random_integers() -- 已弃用,不推荐继续使用
4 随机抽样与排列
choice()
permutation()
shuffle()
5 常见概率分布
5.1 正态分布
normal()
randn()
5.2 离散分布
binomial()
multinomial()
poisson()
geometric()
negative_binomial()
5.3 连续分布
exponential()
gamma()
beta()
dirichlet()
chisquare()
lognormal()
1 生成随机数生成器
default_rng()
2 随机整数
integers()
3 均匀分布随机数
random()
uniform()
4 随机抽样与排列
choice()
permutation()
shuffle()
5 概率分布生成
5.1 正态分布
normal()
multivariate_normal()
5.2 离散分布
binomial()
multinomial()
poisson()
5.3 连续分布
exponential()
gamma()
beta()
chisquare()
lognormal()
dirichlet()
小结
本手册以功能分类为主线,对 NumPy 常用接口进行了系统整理,涵盖数组创建、属性、索引、结构调整、数值运算、统计分析、线性代数、文件读写与随机数生成等核心内容。通过统一编排,可将分散接口纳入同一认知框架,提升查阅效率,并帮助读者逐步建立对 NumPy 计算体系的整体理解。
“点赞有美意,赞赏是鼓励”
热门跟贴