Numpy中构造数据的random类

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DataCastle/article/details/84958492

在日常工作中,当遇到一个问题时,总是先简化它,寻找某一种方法来解决它。如果不使用原数据集,就需要构造数据来验证该方法。大家应该也知道numpy中random类有很多方法可以构造数据,但是当谈论到具体某一种方法的详细说明可能就会含糊不清了,今天就带大家复习下这些方法。

先把这些方法一一列出,方便大家查看

  • numpy.random.rand
  • numpy.random.randn
  • numpy.random.randint
  • numpy.random.random(与numpy.random.ranf功能一致)
  • numpy.random.choice
  • numpy.random.bytes
  • numpy.random.uniform
  • numpy.random.shuffle
  • numpy.random.RandomState

numpy.random.rand

numpy.random.rand(d0,d1,...,dn)(d0,d1为想要创建样本的维度)

创建给定形状的数组,并使用来自均匀分布的随机样本填充它。值得范围是 [0, 1)。

例子如下:

import numpy as np

np.random.rand()
#0.5218338135626677

np.random.rand(2,3)
#array([[ 0.88534282,  0.94114095,  0.55626956],
#       [ 0.56497396,  0.33207925,  0.84650539]])

numpy.random.randn

numpy.random.randn(d0d1...dn)

从“标准正态”分布中(均值0和方差1)返回一个样本(或样本)。

例子如下:

import numpy as np

np.random.randn()
#0.6431863026029006

np.random.randn(2,3)
#array([[-1.39990345, -0.45569575,  0.68015143],
#       [ 0.07683786,  0.00220794,  0.65128032]])

#如果想生成服从(3,6.25)的正态分布
2.5 * np.random.randn(2, 3) + 3
#array([[ 2.45505539,  6.18266592,  2.99618938],
#       [ 2.32896161,  3.82456413,  4.58273751]])

numpy.random.randint

numpy.random.randint(low, high=None, size=None, dtype='l')

随机生成需要的整数,一般是个范围。

参数

含义
low 整数范围的最小值,如果high为none,则为最大值,即[0,low)。
high 整数范围的最大值,即[low,high)。
size 输出样本的形状。
dtype 结果的类型,默认值为'np.int'。

例子如下:

import numpy as np

np.random.randint(3, size=10)
#array([1, 2, 0, 0, 1, 2, 0, 1, 2, 2])

#生成一个二维数组,范围在[0,4]
np.random.randint(5, size=(2, 4))
#array([[1, 0, 4, 4],
#       [2, 1, 4, 1]])

numpy.random.random

numpy.random.random(size=None)

在半开区间[0.0,1.0)中返回随机浮点数。 

例子如下:

import numpy as np

np.random.random()
#0.969503002640394

np.random.random(size=10)
#array([ 0.10988239,  0.06355942,  0.62419081,  0.43922847,  0.01482134,
#        0.66467871,  0.11110031,  0.64051174,  0.47164644,  0.25348374])

np.random.random(size=(2,3))
#array([[ 0.54926089,  0.80708799,  0.78781729],
#       [ 0.55809703,  0.64387581,  0.17245042]])

np.random.choice

numpy.random.choice(a,size = None,replace = True,p = None )

参数

含义

a 数组或者整数,如果是整数,则代表np.arange(a)
size 返回结果的形状
replace 样本是否可以重复出现
p 与a中的每个条目相关联的概率。如果没有给出,则样本假定在a中的所有条目上均匀分布。

例子如下

import numpy as np

np.random.choice(5)
#4

np.random.choice(5,3)
#array([2, 0, 1])

#换成字符串也是可以得
np.random.choice(['a','b','c','d'],2)
#array(['c', 'a'], 
#       dtype='<U1')

numpy.random.bytes

numpy.random.bytes(length)

返回某一长度的随机字节。(内容简单就不放例子了)

numpy.random.uniform

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

从均匀分布中抽取样本,范围为[low,high)。默认值为low=0,high=1。

例子如下:

import numpy as np

np.random.uniform()
#0.24846054309343435

np.random.uniform(1,5,size=10)
#array([ 2.7566854 ,  4.46158096,  3.70401546,  2.30317974,  4.4519283 ,
#        1.72569099,  1.55306411,  1.81166724,  3.86637241,  3.59304843])

np.random.uniform(1,5,size=(2,3))
#array([[ 3.74527792,  4.11014239,  1.74790511],
#       [ 3.72700012,  4.71200736,  1.57848601]])

numpy.random.shuffle

numpy.random.shuffle(x)

沿多维数组的第一轴洗牌,子阵列的顺序已更改,但其内容保持不变。

例子如下:

import numpy as np

a = [1,2,3,4,5,6,7,8,9]
np.random.shuffle(a)
a
#[8, 6, 7, 4, 1, 5, 2, 3, 9]

numpy.random.RandomState

numpy.random.RandomState(seed=None)

伪随机数发生器的容器,做机器学习及模型训练时常常要用到。'

如果sizeNone,则生成并返回单个值。如果size是整数,则返回填充了生成值的1-D数组。如果size是一个元组,则填充并返回具有该形状的数组。

最后numpy的文档奉上Numpy.random

猜你喜欢

转载自blog.csdn.net/DataCastle/article/details/84958492