numpy.random介绍

2020-06-11 09:30:17 浏览数 (1)

  • 小数
    • 特定范围:[0,1)
    • 自定义范围:任意小数
  • 整数
    • randint()
  • 标准正态:randn()
  • 自定义正态分布:nomarl()
代码语言:javascript复制
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

均匀分布

小数

特定范围:[0,1)

rand()
代码语言:javascript复制
#rand(d0, d1, ..., dn)  
#d:dimension 维度

#d0:第1维数字的个数,为整数
#d1:第2维数字的个数  以此类推...
#范围[0,1) 0-1,包含0,不包含1

x = np.random.rand(1000)

# 通过直方图查看分布情况及分布区间
plt.hist(x)
plt.show()
random()
代码语言:javascript复制
#random((size=None))  
#size = m 表示m个数
#size = (m,n,k) 可以给定元祖tuple
# 表示每个维度上数字的个数

#范围[0,1) 0-1,包含0,不包含1
x = np.random.random(1000)

# 通过直方图查看分布情况及分布区间
plt.hist(x)
plt.show()

自定义范围:任意小数

uniform()
代码语言:javascript复制
# uniform(low=0.0, high=1.0, size=None)
# uniform 一致的
# size = m 表示m个数
# size = (m,n,k) 可以给定个元祖tuple
# 表示每个维度上数字的个数

#范围 [low, high)  左开右闭区间

#生成1000个3.5-7.8区间的数
x = np.random.uniform(3.5,7.8,1000)

# 通过直方图查看分布情况及分布区间
plt.hist(x)
plt.show()

整数

randint()

代码语言:javascript复制
# randint(low, high=None, size=None)

# size = m 表示m个数
# size = (m,n,k) 可以给定个元祖tuple
# 表示每个维度上数字的个数

#范围 [起点,终点)

#生成1000个3-8区间的数
x = np.random.randint(3,8,1000)

print('起点:',x.min())
print('终点:',x.max())

# 通过直方图查看分布情况及分布区间
plt.hist(x,bins =5)
plt.xticks(range(3,8))
plt.show()
代码语言:javascript复制
起点:3
终点:7

正态分布

标准正态:randn()

代码语言:javascript复制
# randn(d0, d1, ..., dn) -->标准正态分布的数组ndarray
# 分布服从(μ=0,σ=1) 均值为0,标准差为1

#d:dimension 维度
#d0:第1维数字的个数,为整数
#d1:第2维数字的个数  以此类推...

x = np.random.randn(1000)

# 通过直方图、密度图,查看分布情况及分布区间
# plt.hist(x)
sns.distplot(x)
plt.show()

自定义正态分布:nomarl()

代码语言:javascript复制
# normal(loc=0.0, scale=1.0, size=None) -->符合正态分布的数组ndarray
# 分布服从(μ=loc,σ=scale) 均值为loc,标准差为scale


# size = m 表示m个数
# size = (m,n,k...) 可以给定个元祖tuple
# m,n,k...表示每个维度上数字的个数

# 生成服从均值为2,标准差为3的正态分布数组
x = np.random.normal(2,3,1000)

# 通过直方图、密度图,查看分布情况及分布区间
# plt.figure(figsize = (10,6),dpi=100)
# plt.hist(x)
sns.distplot(x)
plt.show()

0 人点赞