基于numpy的随机数构造

Posted suonikeyinsu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于numpy的随机数构造相关的知识,希望对你有一定的参考价值。


class numpy.random.RandomState(seed=None)
  RandomState 是一个基于Mersenne Twister算法的伪随机数生成类
  RandomState 包含很多生成 概率分布的伪随机数 的方法。

  如果指定seed值,那么每次生成的随机数都是一样的。即对于某一个伪随机数发生器,只要该种子相同,产生的随机数序列就是相同的。


numpy.random.RandomState.rand(d0, d1, ..., dn)
  Random values in a given shape.
  Create an array of the given shape and populate it with random samples from a uniform distribution over [0, 1).
  rand()函数产生 [0,1)间的均匀分布的指定维度的 伪随机数
  Parameters:
    d0, d1, …, dn : int, optional
      The dimensions of the returned array, should all be positive. If no argument is given a single Python float is returned.

  Returns:
    out : ndarray, shape (d0, d1, ..., dn)
      Random values.

numpy.random.RandomState.uniform(low=0.0, high=1.0, size=None)
  Draw samples from a uniform distribution.
  Samples are uniformly distributed over the half-open interval [low, high) (includes low, but excludes high). In other words, any value within the given interval is equally likely to be drawn by uniform.
  uniform()函数产生 [low,high)间的 均匀分布的指定维度的 伪随机数
  Parameters:
  low : float or array_like of floats, optional
    Lower boundary of the output interval. All values generated will be greater than or equal to low. The default value is 0.
  high : float or array_like of floats
    Upper boundary of the output interval. All values generated will be less than high. The default value is 1.0.
  size : int or tuple of ints, optional
    Output shape. If the given shape is, e.g., (m, n, k), then m * n * k samples are drawn.
    If size is None (default), a single value is returned if low and high are both scalars. Otherwise, np.broadcast(low, high).size samples are drawn.

  Returns:
    out : ndarray or scalar
      Drawn samples from the parameterized uniform distribution.

 

有时候我们需要自己模拟构造 输入数据(矩阵),那么这种随机数的生成是一种很好的方式。

 1 # -*- coding: utf-8 -*-
 2 """
 3 Created on Tue May 29 12:14:11 2018
 4 
 5 @author: Frank
 6 """
 7 
 8 import numpy as np
 9 
10 #基于seed产生随机数
11 rng = np.random.RandomState(seed)
12 print(type(rng))
13 
14 #生成[0,1)间的 32行2列矩阵
15 X=rng.rand(32, 2)
16 print("X.type{}".format(type(X)))
17 print(X)
18 
19 #生成[0,1)间的 一个随机数
20 a1 = rng.rand()
21 print("a1.type{}".format(type(a1)))
22 print(a1)
23 
24 #生成[0,1)间的 一个包含两个元素的随机数组
25 a2 = rng.rand(2)
26 print("a2.type{}".format(type(a2)))
27 print(a2)
28 
29 #生成[1,2)间的随机浮点数
30 X1 = rng.uniform(1,2)
31 print("X1.type{}".format(type(X1)))
32 print(X1)
33 
34 #生成[1,2)间的随机数,一维数组且仅含1个数
35 X2 = rng.uniform(1,2,1)
36 print("X2.type{}".format(type(X2)))
37 print(X2)
38 
39 #生成[1,2)间的随机数,一维数组且仅含2个数
40 X3 = rng.uniform(1,2,2)
41 print("X3.type{}".format(type(X3)))
42 print(X3)
43 
44 #生成[1,2)间的随机数,2行3列矩阵
45 X4 = rng.uniform(1,2,(2,3))
46 print("X4.type{}".format(type(X4)))
47 print(X4)

 

以上是关于基于numpy的随机数构造的主要内容,如果未能解决你的问题,请参考以下文章

基于 NumPy 实现随机梯度下降算法

比较使用随机数生成的 Matlab 和 Numpy 代码

芝麻HTTP:TensorFlow基础入门

科学计算基础软件包NumPy入门讲座:创建数组

科学计算基础软件包NumPy入门讲座:创建数组

numpy生成随机数组,超几何分布与连续分布