Numpy随机数

Numpy随机数

np.random随机数子库

1: 基本函数

  • .rand(d0,d1,..dn):创建d0-dn维度的随机数数组,浮点数,范围从0-1,均匀分布
  • .randn(d0,d1,..dn):功能同上,区别:范围不定,标准正态分布
  • .randint(low,high,(shape)):根据shape创建随机整数或整数数组,范围是low,high,形状是shape
  • .seed(s):随机数种子,s是给定的种子值,通过设定相同的随机数种子,可以每次生成相同的随机数
import numpy as np

a = np.random.rand(3,4,5)
a

sn = np.random.randn(3,4,5)
sn

b = np.random.randint(100,200,(3,4,5))
b

np.random.seed(10)
np.random.randint(100,200,(3,4))
np.random.seed(10)
np.random.randint(100,200,(3,4)) #相同的种子,相同的随机数

2:高级函数

  • shuffle(a):将数组a的第0轴(最外维度)进行随机排列(洗牌),改变数组a
  • permutation(a):同上,区别是不改变数组a
  • .choice(a, size=None, replace=True, p=None):从一维数组a中以概率p抽取元素,形成size形状新数组,replace表示是否可以重用元素,默认为False,p为抽取概率
import numpy as np

np.random.seed(10)
a = np.random.randint(100,200,(3,4))
a

#数组最外一层维度数据发生变化
np.random.shuffle(a)
a

np.random.permutation(a)
a #变量不变

np.random.seed(10)
b = np.random.randint(100,200,(8,))
b

np.random.choice(b,(3,2)) #将一维数组内数据抽取转为3行2列数组
np.random.choice(b,(3,2),replace=False) #不重复抽取值
np.random.choice(b,(3,2),p=b/np.sum(b)) #p为抽取概率,本位置值越大,抽取概率越高
原文地址:https://www.cnblogs.com/yoyo1216/p/10131589.html