Python NumPy 之 random

____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)

从伽马分布中抽取样本



猜你喜欢

转载自blog.csdn.net/tz_zs/article/details/80773939