文章目录
多维数组对象
数组生成函数
array(总是复制), asarray(当不是ndarry类型时才复制)
arange
ones, ones_like
zeros, zeros_like
empty, empty_like
full, full_like
eye, identity
数类型和转化
数据类型:int, uint, float, complex, bool, object, string_, unicode_, …
转化函数:astype(总是复制)
数组算术
同尺寸数组间运算时,是对应位置元素间进行运算。
对某个标量进行运算时,每个元素都会进行运算。
同尺寸之间的比较运算,会生成同尺寸的bool数组。
基础索引和切片
从0开始。[n:m]表示从n开始,到m-1结束。[n:]表示从n开始到结尾。[:n]表示从0开始到n-1结束。[:]表示全选。可以使用[-1]这种索引。
数组的切片是数组的视图,而不是复制,它和原数组相互依赖。想要复制需要用XXX.copy()
布尔索引
用于索引的bool数组的shape必须和索引轴的数组的shape相同。
关键字and、or、not对bool数组没有用,请使用&、|、~来进行操作。
神奇索引
诸如b=a[ [1,4,3] ]这种方式的索引即神奇索引。总是复制,不是视图。
数组转置和换轴
用transpose()方法、swapaxes()方法或者特殊的XXX.T属性。都是视图。
transpose((n1,n2,…,nk,…,nN))表示新数组的第k个轴是原来数组的第nk个轴。
swapaxes(m,n)方法表示把m轴和n轴互换。
通用函数:快速逐元素数组函数
一元函数
sign, abs, fabs, sqrt, square, exp
log, log2, log10, log1p
ceil, floor, rint, modf, isnan, isfinite, isinf
cos, cosh, sin, sinh, tan, tanh, arccos, arccosh, …
logical_not
二元函数
add, subtract, multiply, divide, power
floor_divide, mod
maximum, fmax, minimum, fmin
copysign
向量化编程
where函数
np.where(arr>0, 2, -2)
np.where(arr>0, arr, -2)
np.where(arr>0, 2, arr**2)
…
常用内置方法
数学和统计方法:sum, std, var, mean, max, min, argmax, argmin, cumsum, cumprod
排序:sort
去重并排序:unique
去重、交集并排序:intersect1d
去重、并集并排序:union1d
去重、差集并排序:setdiff1d
去重、异或集并排序:setxor1d
文件输入输出
np.save, np.load, np.savez
线性代数
基本函数:dot, trace,
np.linalg下的函数:diag(对角元), dot(矩阵乘法), trace(矩阵求迹), det(矩阵的行列式), eig(特征值和特征向量), inv(方阵的逆), pinv(矩阵伪逆), qr(QR分解), svd(奇异值分解), solve(Ax=b的解,A为方阵), lstsq(Ax=b的最小二乘解)
伪随机数
numpy.random中的函数:
rand均匀抽样
randint随机整数
randn标准正态抽样
binomial二项分布抽样
normal正态抽样
beta贝塔分布抽样
chisquare卡方抽样
gamma伽马抽样
uniform均匀抽样[0,1)范围
补充函数
reshape()
meshgrid()
若xv,yv=meshgrid(xx,yy)
则xv[i][j]=xx[j], yv[i][j]=yy[i]