numpy 生成随机数方法


文章目录

  • numpy 生成随机数方法
  • 1.np.random.uniform的用法
  • 2.np.random.random_sample的用法
  • 3.np.random.rand的用法
  • 4.np.random.randint的用法
  • 5.np.random.random_integers的用法
  • 中场总结(~~):
  • 6.np.random.randn
  • 7.np.random.normal
  • 8.np.random.seed()用法
  • 9.numpy.linspace
  • 转载:
  • 转载:
  • 转载:


1.np.random.uniform的用法

np.random.uniform(low=0.0, high=1.0, size=None)

作用:可以生成[low,high)中的随机数,可以是单个值,也可以是一维数组,也可以是多维数组
参数介绍:
low :float型,或者是数组类型的,默认为0
high:float型,或者是数组类型的,默认为1
size:int型,或元组,默认为空

In[1]: import numpy as np

In[2]: np.random.uniform()  # 默认为0到1
Out[2]: 0.827455693512018

In[3]: np.random.uniform(1,5)
Out[3]: 2.93533586182789

In[4]: np.random.uniform(1,5,4)  #生成一维数组
Out[4]: array([ 3.18487512,  1.40233721,  3.17543152,  4.06933042])

In[5]: np.random.uniform(1,5,(4,3)) #生成4x3的数组
Out[5]: 
array([[ 2.33083328,  1.592934  ,  2.38072   ],
       [ 1.07485686,  4.93224857,  1.42584919],
       [ 3.2667912 ,  4.57868281,  1.53218578],
       [ 4.17965117,  3.63912616,  2.83516143]])

In[6]: np.random.uniform([1,5],[5,10])       
Out[6]: array([ 2.74315143,  9.4701426 ])

2.np.random.random_sample的用法

和np.random.random作用一样
np.random.random_sample(size=None)
作用:返回[0,1)之间的浮点型随机数,通过size控制返回的形状

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

    Three-by-two array of random numbers from [-5, 0):

5 * np.random.random_sample((3, 2)) - 5
    array([[-3.99149989, -0.52338984],
           [-2.99091858, -0.79479508],
           [-1.23204345, -1.75224494]])

3.np.random.rand的用法

np.random.rand(d0, d1, …, dn)
作用:返回[0,1)内的浮点数,输入的d0,d1…dn代表维度信息,没有输入时,则返回[0,1)内的一个随机值

In[15]: np.random.rand()
Out[15]: 0.9027797355532956

In[16]:np.random.rand(3,3)
Out[16]: 
array([[ 0.47507608,  0.64225621,  0.9926529 ],
       [ 0.95028412,  0.18413813,  0.91879723],
       [ 0.89995217,  0.42356103,  0.81312942]])

In[17]: np.random.rand(3,3,3)
Out[17]: 
array([[[ 0.30295904,  0.76346848,  0.33125168],
        [ 0.77845927,  0.75020602,  0.84670385],
        [ 0.2329741 ,  0.65962263,  0.93239286]],

       [[ 0.24575304,  0.9019242 ,  0.62390674],
        [ 0.43663215,  0.93187574,  0.75302239],
        [ 0.62658734,  0.01582182,  0.66478944]],

       [[ 0.22152418,  0.51664503,  0.41196781],
        [ 0.47723318,  0.19248885,  0.29699868],
        [ 0.11664651,  0.66718804,  0.39836448]]])

4.np.random.randint的用法

np.random.randint(low, high=None, size=None, dtype=’l’)

作用:生成整型随机数,可以是单个随机数,也可以是多维的随机数构成的数组

参数介绍
low:int 型,随机数的下限
high:int 型,默认为空,随机数的上限,当此值为空时,函数生成[0,low)区间内的随机数
size:int、或ints、或元组,指明生成的随机数的类型
dtype:可选’int’ ,’int32’,默认为’l’

In[7]: np.random.randint(4)
Out[7]: 1

In[8]: np.random.randint(4,size=4)
Out[8]: array([2, 2, 2, 0])

In[9]: np.random.randint(4,10,size=6)
Out[9]: array([7, 9, 7, 8, 6, 9])

np.random.randint(4,10,size=(2,2),dtype='int32')
Out[10]: 
array([[7, 4],
       [6, 9]])

5.np.random.random_integers的用法

np.random.random_integers(low, high=None, size=None)
和randint的用法较为相似,区别在于[low,high]
的右边界能够取到,且该函数即将被抛弃,可以使用
np.random.randint(low,high+1)进行代替

中场总结(~~):

随机数可以分为两大类,一类是浮点型的,常以np.random.uniform为代表,np.random.rand,np.random.radnom和np.random.random_simple可以看作是np.random.uniform的特例;另一类是整数型的,以np.random.randint为代表,也有np.random.random_integers 但是后者将被前者取代

6.np.random.randn

标准正态分布

# 生成随机数组(3行4列)
t4 = np.random.randn(3, 4)  # 标准正态分布。平均数为0,标准差为1
print(t4)
'''
[[-1.16437124  0.46641835 -1.46333878 -0.62954658]
 [-1.00251519  0.01611795 -0.84230815 -0.53709323]
 [-0.1879806   0.95789097  0.39767329 -0.62235085]]

7.np.random.normal

指定均值、标准差的正态分布

# 随机生成数组。指定均值和标准差的正态分布
# normal(平均值, 标准差, (size))
t5 = np.random.normal(0, 1, (3, 4))  # 指定均值和标准差的正态分布
print(t5)
'''
[[-0.61227132 -1.51199316  0.73388842  2.8243283 ]
 [-0.12226332 -1.14841297 -0.17976744 -1.48553538]
 [ 0.54848728 -0.54263611  1.6900577   0.35058451]]

8.np.random.seed()用法

import numpy as np
np.random.seed(10)  # 设定随机种子值。 设定之后,每次执行该程序,生成的是相同的随机数。(电脑是伪随机)
t1 = np.random.randint(0,20,(3,4))
print(t1)  # 多次执行,生成相同的随机数。
print(t1)  # 多次执行,生成相同的随机数。
print(t1)  # 多次执行,生成相同的随机数。

[[ 9  4 15  0]
 [17 16 17  8]
 [ 9  0 10  8]]
 [[ 9  4 15  0]
 [17 16 17  8]
 [ 9  0 10  8]]
[[ 9  4 15  0]
 [17 16 17  8]
 [ 9  0 10  8]]

9.numpy.linspace

在指定的间隔内返回均匀间隔的数字。

返回num均匀分布的样本,在[start, stop]。

这个区间的端点可以任意的被排除在外

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

Parameters(参数):
start : scalar(标量),序列的起始点
stop : scalar,序列的结束点
num : int, optional(可选),生成的样本数,默认是50。必须是非负。
endpoint : bool, optional,如果是真,则一定包括stop,如果为False,一定不会有stop
retstep : bool, optional
dtype : dtype, optional
>>> np.linspace(2.0, 3.0, num=5)
    array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ])
>>> np.linspace(2.0, 3.0, num=5, endpoint=False)
    array([ 2. ,  2.2,  2.4,  2.6,  2.8])
>>> np.linspace(2.0, 3.0, num=5, retstep=True)
    (array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ]), 0.25)
>>> import matplotlib.pyplot as plt
>>> N = 8
>>> y = np.zeros(N)
>>> x1 = np.linspace(0, 10, N, endpoint=True)
>>> x2 = np.linspace(0, 10, N, endpoint=False)
>>> plt.plot(x1, y, 'o')
[<matplotlib.lines.Line2D object at 0x...>]
>>> plt.plot(x2, y + 0.5, 'o')
[<matplotlib.lines.Line2D object at 0x...>]
>>> plt.ylim([-0.5, 1])
(-0.5, 1)
>>> plt.show()

python numpy创建随机数 numpy生成随机数_随机数