登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 15195775117 于 2021-1-27 09:36 编辑
一楼主要介绍3个随机处理方法:生成随机数,洗牌,抽样
#以下随机函数返回值都是3行2列的数组 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快很多,我觉得比较荒谬,“时间复杂度”都是按大量数据来计算的,大量数据都是按矩阵、数组计算的啊,为什么比较单个??
|