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 计算体系的整体理解。

点赞有美意,赞赏是鼓励