Numpy的梯度函数 gradient & 统计函数 & 随机函数

仇和蔼
2023-12-01

1、梯度函数 gradient

np.gradient(f) 计算数组f中元素的梯度,当f为多维时,返回每个维度的梯度
梯度:连续值之间的变化率,即斜率
实例代码如下
#一维数组:存在俩侧值 斜率=(右侧值-左侧值)/ 2
只存在一侧值 斜率=(本身-左侧值) 或者 (右侧值-本身)

>>> import numpy as np
>>> c=np.random.randint(0,20,15)
>>> np.gradient(c)
array([  7. ,  -6. ,  -4. ,   7.5,  -5.5,  -2. ,   4.5,   2.5,   2.5,
        -1.5,  -2.5,  -5.5,   2. ,   0. , -11. ])
>>> d=np.random.randint(0,20,(3,5))
>>> np.gradient(d)
[array([[  0. ,  14. ,  -3. ,   0. ,   1. ],
       [ -7.5,   1. ,  -0.5,  -6. ,  -5.5],
       [-15. , -12. ,   2. , -12. , -12. ]]), array([[-13. ,  -3. ,   6.5,   2.5,  -1. ],
       [  1. ,  -4.5,  -0.5,   4.5,   0. ],
       [  4. ,   4. ,  -0.5,  -2.5,   0. ]])]

2、统计函数

函数名描述
sum(a,axis=None)求和
mean(a,axis=None)求期望
average(a,axis=None,weight=None)求平均值 / 加权平均值
std(a,axis=None)求标准差
var(a,axis=None)求方差

案例:实例代码如下

>>> import numpy as np
>>> a=np.arange(15).reshape(3,5)
>>> np.sum(a)
105
>>> np.mean(a)
7.0
>>> np.average(a)
7.0
>>> np.std(a)
4.320493798938574
>>> np.var(a)
18.666666666666668
函数名描述
max(a)最大值
min(a)最小值
ptp(a)最大值-最小值
median(a)中位数
unravel_index(index,shape)根据shape将一维下标index转化为多维下标
argmin(a)最小值的降一维后下标
argmax(a)最大值的降一维后下标
案例:实例代码如下
>>> b=np.arange(15,0,-1).reshape(3,5)
>>> np.min(b)
1
>>> np.argmax(b)
0
>>> np.unravel_index(np.argmax(b),b.shape)
(0, 0)
>>> np.ptp(b)
14
>>> np.median(b)
8.0

3、 随机函数

函数名描述
.rand(d0,d1,…d n)根据d0 --dn创建随机数组,浮点数 [0,1) 均匀分布
.randn(d0,d1,…d n)根据d0 --dn创建随机数组,标准正态分布
randint(low[,high,shape])根据shape创建随机整数或整数数组,范围为[low,high]
seed(s)给定一个种子s

函数的使用,代码如下:

>>> import numpy as np
>>> a=np.random.rand(3,4,5)
>>> a=np.random.randn(3,4,5)
>>> a=np.random.randint(200,400,[3,4])
>>> a=np.random.seed(3)
>>> d=np.random.randint(200,400,[3,4])
>>> d

函数名描述
shuffle(a)根据数组a的第一轴进行随机排列,改变数组a
permutation(a)根据数组啊的第一轴产生一个新的乱序数组,不改变a
choice(a[,size,replace,p])从一维数组a中的概率p抽取元素,形成size形状的数组,replace表示是否可以重用元素,默认为f

实例代码如下

>>> import numpy as np
>>> a=np.random.randint(100,200,[3,4])
>>> a
array([[163, 135, 174, 193],
       [160, 189, 199, 129],
       [133, 199, 179, 176]])
>>> np.random.shuffle(a)
>>> a
array([[133, 199, 179, 176],
       [160, 189, 199, 129],
       [163, 135, 174, 193]])
>>> np.random.permutation(a)
array([[163, 135, 174, 193],
       [160, 189, 199, 129],
       [133, 199, 179, 176]])
 类似资料: