温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python生成随机数

发布时间:2020-06-22 17:55:57 来源:网络 阅读:907 作者:佛曰可说 栏目:大数据

更多大数据分析、建模等内容请关注公众号《bigdatamodeling》

在实现算法时经常会用到随机数,有时会忘记各种随机数的生成方法,这里对Python中的随机数生成方法进行汇总,以供以后查阅。

import numpy as np
# 两者实现的作用是一样的,都是使每次随机生成数一样
np.random.seed(10)
np.random.RandomState(10)

### 正态分布 np.random.normal(loc=0.0, scale=1.0, size=None)
np.random.normal() # 返回标量 ~N(0,1)
np.random.normal(1) # 返回标量 ~N(0,1)
np.random.normal(size=(2, 2)) # 返回N(0,1) 
np.random.normal(0, 1, size=(2, 2)) # 同上
np.random.normal(2, 10, size=(2, 2)) 

### 标准正态分布N(0,1) 
np.random.randn() # 生成标量 
np.random.randn(1)
np.random.randn(2)
np.random.randn(2, 2)
5 * np.random.randn(2, 2) + 10

### 从均匀分布([low, high):半开区间)中进行采样
np.random.uniform(low=1, high=5, size=(2, 2))
np.random.uniform(1, 5, 10)
np.random.uniform(1, 5) # 生成[1, 5)中的1个标量

### 从均匀分布([0, 1):半开区间)中进行采样
np.random.rand() # 生成标量 
np.random.rand(1)
np.random.rand(2, 2)

### 生成半开半闭区间[low,high)上离散均匀分布的整数值;若high=None,则取值区间变为[0,low) 
np.random.randint(low=1, high=5, size=(2, 2))
np.random.randint(low=1, high=5, size=10) 
np.random.randint(1, 5, 10) # 同上
np.random.randint(low=5, size=10)
np.random.randint(1, 5) # 生成[1, 5)中的1个标量

### 生成闭区间[low,high]上离散均匀分布的整数值;若high=None,则取值区间变为[1,low] 
np.random.random_integers(low=1, high=5, size=(2, 2))
np.random.random_integers(low=1, high=5, size=10)
np.random.random_integers(1, 5, 10) # 同上
np.random.random_integers(low=5, size=10) 
np.random.random_integers(1, 5) # 生成[1, 5]中的1个标量

### np.random.random 等价于 np.random.random_sample
# 返回[0,1)之间的随机数
np.random.random() # 返回标量
np.random.random(1)
np.random.random(2)
np.random.random((2, 3))

### numpy.random.choice(a, size=None, replace=True, p=None) 
# Generates a random sample from a given 1-D array
# 从数组a中选择,若a是整数,则从np.arange(a)中选择
# replace代表放回与否
# p为数组中每个元素被选中的概率,为空则表示均匀分布
np.random.choice(5, 3)
np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0])
np.random.choice(5, 3, replace=False)
np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0])
arr = ['pooh', 'rabbit', 'piglet', 'Christopher']
np.random.choice(arr, 5, p=[0.5, 0.1, 0.1, 0.3])
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI