公众号后台回复“图书“,了解更多号主新书内容 作者:黄伟呢
来源:数据分析与统计学之美
1. 本文介绍
2. 哪9个函数呢?
① np.random.random:生成指定形状的0-1之间的随机数; ② np.random.rand:生成指定形状的0-1之间的随机数; ③ np.random.randint:生成指定数值范围内的随机整数; ④ np.random.randn:生成服从均值为0,标准差为1的标准正态分布随机数; ⑤ np.random.normal:生成指定均值和标准差的正态分布随机数; ⑥ np.random.uniform:生成均匀分布随机数; ⑦ np.random.seed:按照种子来生成随机数,种子一样,生成的随机数也一样; ⑧ np.random.shuffle:打乱数组元素顺序; ⑨ np.random.choice:按照指定概率从指定数组中,随机抽出某个数;
① 生成指定形状的0-1之间的随机数:np.random.random()和np.random.rand()
array1 = np.random.random((3))
print(array1)
array2 = np.random.random((3,4))
print(array2)
# -----------------------------------
array3 = np.random.rand(3)
print(array3)
array4 = np.random.rand(2,3)
print(array4)
array5 = np.random.random(3,4)
print(array5)
array6 = np.random.rand((2,3))
print(array6)
② 生成指定数值范围内的随机整数:np.random.randint()
语法:np.random.randint(low=, high=1, size=, dtype=) low和high表示指定范围的最大值和最小值。 size既可以体现生成数组的元素个数,又可以体现生成数组的维数,当size等于某个数x的时候,代表生成的是一维数组,数组元素个数为x;当size等于某个元组(x,y)的时候,代表生成的是二维数组,数组元素个数为x * y,其中x表示行数,y表示列数。当然size=(x,y,z)的时候,生成的就是一个三维数组。 dtype表示你可以指定生成数组的数据类型,注意此函数生成的是整数,因此这里你只能指定是np.int32或np.int64,肯定不能写成float。
array7 = np.random.randint(low=1, high=10, size=6, dtype=np.int32)
print(array7)
array8 = np.random.randint(low=1, high=10, size=(2,3), dtype=np.int64)
print(array8)
array9 = np.random.randint(low=1, high=10, size=(2,3,4), dtype=np.int32)
print(array9)
③ 与正态分布有关的几个随机函数:np.random.randn()和np.random.normal()
np.random.randn:生成服从均值为0,标准差为1的标准正态分布随机数; np.random.normal :生成指定均值和标准差的正态分布随机数;
array10 = np.random.randn(3)
print(array10)
array11 = np.random.randn(2,3)
print(array11)
array12 = np.random.normal(loc=2,scale=0.5,size=6)
print(array12)
array13 = np.random.normal(loc=2,scale=0.5,size=6).reshape(2,3)
print(array13)
④ 均匀分布随机函数:np.random.uniform()
用法:生成指定范围内的服从均匀分布的随机数;
array14 = np.random.uniform(1,10,5)
print(array14)
array15 = np.random.uniform(1,10,(2,3))
print(array15)
⑤ np.random.seed():按照种子来生成随机数,种子一样,则生成的随机数结果必一致
np.random.seed(3)
a = np.random.rand(3)
print(a)
np.random.seed(3)
b = np.random.rand(3)
print(b)
np.random.seed()
a = np.random.rand(3)
print(a)
np.random.seed()
b = np.random.rand(3)
print(b)
⑥ np.random.shuffle():打乱数组元素顺序(原地操作数组)
c = np.arange(10)
print(c)
np.random.shuffle(c)
print(c)
⑦ np.random.choice():按照指定概率从指定数组中,生成随机数
d = np.random.choice([1,2,3,4], p=[0.1, 0.2, 0.3, 0.4])
print(d)
list1 = [0,0,0,0]
for i in range(100000):
f = np.random.choice([1,2,3,4], p=[0.1, 0.2, 0.3, 0.4])
list1[f-1] = list1[f-1] + 1
print(list1)
result_list = [value/sum(list1) for value in list1]
print(result_list)
list1 = [0,0]
for i in range(100000):
f = np.random.choice([0,1], p=[0.5,0.5])
list1[f] = list1[f] + 1
print(list1)
result_list = [value/sum(list1) for value in list1]
print(result_list)
◆ ◆ ◆ ◆ ◆
麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:
数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
管理员二维码:
猜你喜欢 ● 你相信逛B站也能学编程吗