____tz_zs
之前把 numpy 资料写在了同一篇博客里,发现非常难以查阅,于是按功能切分开来。
np.random
官方文档:https://docs.scipy.org/doc/numpy/reference/routines.random.html
numpy 的 random 模块中文翻译文档:http://www.mamicode.com/info-detail-507676.html
random
numpy.random.random(size=None)
需要以元组的形式指明size,返回在半开区间 [0.0, 1.0)内的随机的浮点数。
·
>>> np.random.random_sample()
0.47108547995356098
>>> type(np.random.random_sample())
<type 'float'>
>>> np.random.random_sample((5,))
array([ 0.30220482, 0.86820401, 0.1654503 , 0.11659149, 0.54323428])
>>> 5 * np.random.random_sample((3, 2)) - 5
array([[-3.99149989, -0.52338984],
[-2.99091858, -0.79479508],
[-1.23204345, -1.75224494]])
·
x, y = (np.random.random((2, 15)) * 10).astype(np.int)
print(x)
print(y)
'''
[8 8 8 9 7 4 5 7 2 3 5 0 7 9 2]
[5 7 7 1 3 1 4 2 7 4 9 1 5 8 1]
'''
·
normal
np.random.normal 构造一个形状为 size 的数组,数组元素服从均值为 loc、标准差为 scale 的正态分布
·
# -*- coding: utf-8 -*-
"""
@author: tz_zs
"""
import numpy as np
# 构造一个4x3的数组,数组元素服从均值为 0、标准差为 1 的正态分布:
ndarray = np.random.normal(loc=0, scale=1, size=(3, 3))
print(ndarray)
·
randint
numpy.random.randint(low, high=None, size=None, dtype='l')#返回随机整数
在“半开”区间 [ low , high ) 中,返回随机整数。如果 high 是 None,则结果来自 [ 0 , low ] 。size 控制输出的格式,如,size = 10 代表输出 10 个随机值,size =(2,4)代表输出的是2行4列的数组
·
>>> np.random.randint(2, size=10)
array([1, 0, 0, 0, 1, 1, 0, 0, 1, 0])
>>> np.random.randint(1, size=10)
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
>>> np.random.randint(5, size=(2, 4))
array([[4, 0, 2, 1],
[3, 2, 2, 0]])
·
rand
numpy.random.rand(d0, d1, ..., dn)
从区间[0,1)之间返回给定维度的数组
·
>>> np.random.rand(3,2)
array([[ 0.14022471, 0.96360618], #random
[ 0.37601032, 0.25528411], #random
[ 0.49313049, 0.94909878]]) #random
·
randn
numpy.random.randn(d0, d1, ..., dn)
生成正态分布的随机值
np.random.randn(4, 2)# 生成4组 2列的正态分布的随机值
·
>>> np.random.randn(4, 2)
array([[ 1.51132708, 1.27868881],
[-2.25679903, 0.72039707],
[ 0.67313853, 1.88992878],
[-2.57850825, -0.36216924]])
·
uniform
numpy.random.uniform(low=0.0, high=1.0, size=None)
从一个[low,high)中随机采样,注意定义域是左闭右开
low: 采样下界,float类型,默认值为0;
high: 采样上界,float类型,默认值为1;
size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出m*n*k个样本,缺省时输出1个值。
返回值:ndarray类型,其形状和参数size中描述一致。
·
# -*- coding: utf-8 -*-
"""
@author: tz_zs
"""
import numpy as np
n = np.random.uniform(1, 9, size=[2, 2, 3])
print(n)
"""
[[[ 8.89917088 1.41268889 6.79007201]
[ 8.54988558 6.21842088 1.22488124]]
[[ 3.89760969 3.41482704 4.35045411]
[ 4.38603424 2.61035414 2.29482249]]]
"""
·
RandomState
numpy.random.RandomState(seed)
获取随机数生成器
seed:用于随机的种子
此方法的不同在于,他会由种子生成一个实例。保存这个实例并使用。
·
r = np.random.RandomState(1234)
r.rand(2,3)
#array([[ 0.27259261, 0.27646426, 0.80187218],
# [ 0.95813935, 0.87593263, 0.35781727]])
·
seed
numpy.random.seed(seed=None)
种子生成器
这个方法在RandomState被初始化的时候被调用,可以调用它来重新生成生成器。
np.random.seed() 和 np.random.RandomState()的不同
gamma
numpy.random.gamma(shape, scale=1.0, size=None)
从伽马分布中抽取样本