numpy急速入门(5):完结——随机生成与梯度函数

5 篇文章 0 订阅
5 篇文章 0 订阅
import numpy as np

#numpy的随机数函数
'''
numpy的random子库:np.random.*,有np.random.rand(),np.random.randn()
    np.random.randint()

'''
a = np.random.rand(2,3,4)#根据所给的shape创建随机数组(均匀分布)

a = np.random.randn(2,3,4)#根据所给shape创建随机数组(标准正态分布)

a = np.random.randint(5,10,(2,3))#根据shape创建随机数组,范围是5到10
'''
np.random.seed(s) 随机数种子,s是给定的种子值
种子数不变时,产生的随机数一样
'''

a = np.random.randint(1,10,(3,4))
np.random.shuffle(a)#将数组的行给打乱,a数组改变
a = np.random.permutation(a)#将数组的行打乱,a数组不改变


a = np.random.randint(10,20,(8,))

b = np.random.choice(a,(2,4),replace = True)
#从a的元素中随机抽取元素生成shape指定的数组,若replace = True则可以重复选取
#同时还有一个可选参数p,默认为None为均匀抽取,例改为p=a/np.sum(a)则说明按数越大抽取越大的概率来抽取

'''
a = np.random.uniform(low,high,size)

a = np.random.normal(loc,scale,size)
产生具有正态分布的数组,loc均值,scale标准差,size形状
a = np.random.poisson(lam,size)
产生具有泊松分布的数组,lam随机事件发生率,size形状
'''

#numpy的统计函数
a = np.arange(15).reshape((3,5))

np.sum(a)#求和函数,可以根据给定轴计算,默认axis = None
np.sum(a,axis = 0)#计算每一列,输出一个一维数组
np.sum(a,axis = 1)#计算每一行,输出一个一维数组

np.mean(a,axis=None)#计算a数组元素的期望,0是列,1是行

np.average(a,axis = None,weights = None)
#计算a数组给定轴的加权平均值,axis同上
#此处weights如果要给的话,应对应行列给出
np.average(a,axis = 0,weights = [2,3,5])
#这里意味着每一行都赋予了相应的权值
#例如第一列求平均 (x1*2+x2*3+x3*5)/(2+3+5)

np.std(a,axis = None)#求标准差
np.var(a,axis = None)#求方差
np.min(a)#求最小值
np.max(a)#求最大值
np.argmin(a)#求a数组中最小值的下标,以降一维为准
np.argmax(a)

np.unravel_index(index,shape)#根据shape将一维index转换为指定维度的下标

np.ptp(a)#计算数组a的极差
np.median(a)#计算数组a的中位数


#numpy的梯度函数
'''
np.gradient(a)
计算数组a中元素的梯度,当a为多维时返回每个维度梯度
梯度:连续值之间的变化率,即斜率

'''
a = np.random.randint(0,20,(5,))

np.gradient(a)
#这里梯度的计算比较难理解,比如一个5元素向量,带入函数也生成同等维度数组(仅限一维数组)
#生成的数组除头尾元素外,其余元素都是相邻元素差除以2,首尾为它本身与相邻元素差除1

#多维数组的梯度较复杂,此处暂不讨论




 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值