在日常工作中,当遇到一个问题时,总是先简化它,寻找某一种方法来解决它。如果不使用原数据集,就需要构造数据来验证该方法。大家应该也知道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
(d0, d1, ..., 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)伪随机数发生器的容器,做机器学习及模型训练时常常要用到。'
如果size为
None
,则生成并返回单个值。如果size是整数,则返回填充了生成值的1-D数组。如果size是一个元组,则填充并返回具有该形状的数组。
最后numpy的文档奉上Numpy.random