千家信息网

python生成随机数

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,更多大数据分析、建模等内容请关注公众号《bigdatamodeling》在实现算法时经常会用到随机数,有时会忘记各种随机数的生成方法,这里对Python中的随机数生成方法进行汇总,以供以后查阅。imp
千家信息网最后更新 2024年11月26日python生成随机数

更多大数据分析、建模等内容请关注公众号《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])
0