Numpy模块的随机数主要是用来生成数据的,因为我们在开始学做数据分析的时候可能找不到一定的数据来练习,所以可以利用Numpy来生成一定的数据辅助我们做数据分析,换个角度来讲呢,就是说这一部分很重要啦!!!
Numpy模块生成随机数主要使用random部分,我们来具体看一下:
(1)正太分布样本值normal
normal这个单词一看就很标准,所以使用random.normal()呢可以生成标准正太分布样本值
samples = np.random.normal(size=(4,4))#随机生成4*4的二维数组
print(samples)
输出结果:
(2)均匀分布浮点数rand
rand函数随机生成浮点数或者是浮点数数数组,当生成的浮点数数量很大的时候,整个数据服从均匀分布,均匀分布就是整个数据分布看起来非常的均匀,说起来可能有一些抽象,我们来看一些具体的例子
b = np.random.rand(4)
print(b,type(b)) # 生成形状为4的一维数组
c = np.random.rand(2,3)
print(c,type(c)) # 生成形状为2*3的二维数组,注意这里不是((2,3))
输出结果:
我们再来看一下当生成大量数据时的数据分布情况
import matplotlib.pyplot as plt # 导入matplotlib模块,用于图表辅助分析
%matplotlib inline
# 魔法函数,每次运行自动生成图表
samples1 = np.random.rand(1000)
samples2 = np.random.rand(1000)
plt.scatter(samples1,samples2)
# 生成1000个均匀分布的样本值
输出结果:
看输出结果还真的是非常的均匀哈
(3)正态分布randn
random.randn()也是生成正态分布数据,但是跟normal的使用还是有一定的差别,normal有size参数,randn没有,比如生成4*4的二维数组,normal的表达方式是random.normal(size=(4,4)),randn的表达方式是random.randn(4,4)
samples = np.random.normal(size=(4,4))
sample3=np.random.randn(4,4)
print(samples)
print('---------')
print(sample3)
输出结果:
再来看randn生成大量数据时的分布情况
samples1 = np.random.randn(1000)
samples2 = np.random.randn(1000)
plt.scatter(samples1,samples2)
输出结果:
可以看出来与rand生成的均匀分布数据还是有很大的差别
(4)随机整数randint
前面生成的数据都是浮点数,现在我们来看一下生成随机整数
print(np.random.randint(2))
# low=2:生成1个[0,2)之间随机整数
print(np.random.randint(2,size=5))
# low=2,size=5 :生成5个[0,2)之间随机整数
print(np.random.randint(2,6,size=5))
# low=2,high=6,size=5:生成5个[2,6)之间随机整数
print(np.random.randint(2,size=(2,3)))
# low=2,size=(2,3):生成一个2x3整数数组,取数范围:[0,2)随机整数
print(np.random.randint(2,6,(2,3)))
# low=2,high=6,size=(2,3):生成一个2*3整数数组,取值范围:[2,6)随机整数
输出结果:
今天的分享就到这里啦,有问题的话可以私聊我哦,看到都会回的,没回就是在写作业啦~