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 計算體系的整體理解。
“點贊有美意,贊賞是鼓勵”
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.