爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 14535|回复: 0

[参考资料] [已收纳]python科学计算之numpy随机数工具

[复制链接]

新浪微博达人勋

发表于 2020-10-10 11:46:23 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 15195775117 于 2021-1-27 09:36 编辑

一楼主要介绍3个随机处理方法:生成随机数,洗牌,抽样

#以下随机函数返回值都是32列的数组
x=np.random.rand(3,2)#0-1之间随机数
x=np.random.randn(3,2)#0-1之间标准正态分布随机数
x=np.random.randint(13,19,(3,2))#13-18之间随机整数一个
x=np.random.normal(10,1,(3,2))#期望=10,标准差=1正态分布
x=np.random.uniform(1,10,(30,20))#区间[1,10]均匀分布
x=np.random.poisson(5.0,(3,2))#泊松分布,λ=5.0,返回值为整数

#洗牌函数有2个:
x=np.random.permutation(range(10))
x=np.arange(10);np.random.shuffle(x)#覆盖式
#抽取样本:
#从数组a中抽取,replace=True允许抽取重复元素,replace=False不允许重复
#p表示每个元素的抽取概率,以下的设置中,值越大被抽中的概率越大,不设置p则所有元素等概率抽取
a=np.arange(10)+10
x=np.random.choice(a,size=(3,2),replace=True,p=a/np.sum(a))
#在生成随机数前设置随机数种子,则可以获得相同的随机数:
np.random.seed(3)
print(np.random.rand(3))
np.random.seed(3)
print(np.random.rand(4))
# [0.55 0.71 0.29]
# [0.55 0.71 0.29 0.51]

以前我也用过math库里的工具,其实跟numpy很类似,但numpy的速度比math快,所以以后我都用numpy了
网上有一些帖子证明math在处理单个值的速度比numpy快很多,我觉得比较荒谬,“时间复杂度”都是按大量数据来计算的,大量数据都是按矩阵、数组计算的啊,为什么比较单个??

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表