用法:
返回位于左闭右开区间[low, high)内的随机整数值。
n1 = np.random.randint(low, high=None, size, dtype)
import numpy as np
n1 = np.random.randint(0, 20, size=(4, 4))
# 结果 从0开始,到19为止,形状为4行4列
array([[ 9, 5, 6, 8],
[12, 17, 12, 0],
[19, 17, 2, 0],
[ 8, 10, 16, 14]])
用法:
返回位于闭区间[low, high]内的随机整数值
n1 = np.random.random_integers(low, high=None, size=None)
例子:
n1 = np.random.random_integers(1,2, size=(3,3))
n1
# 结果,注意都是闭区间
array([[1, 2, 1],
[2, 2, 1],
[1, 2, 2]])
用法:
给定一个样本,根据n个参数来创建n维数组,形成标准正态分布 N (0, 1)
np.random.randn(d0, d1, d2...)
例子:
import numpy as np
np.random.randn(3, 4, 5)
# 三个参数,三维,且符合标准正态分布
array([[[-0.4267881 , 0.79907241, 0.06558645, 0.56846871,
-0.60150134],
[-2.56899749, 0.20129116, 1.2167321 , 0.80332927,
0.64673455],
[-0.35673913, 0.58996627, 0.61112403, -0.3615083 ,
1.31457175],
[-0.49602941, 0.30837027, -1.56858107, 1.22044173,
0.14291741]],
[[ 1.02120245, 1.37848749, -1.6988178 , -0.50370034,
0.35153699],
[-0.25619725, 0.29680301, -0.054829 , -1.62209135,
0.47050918],
[-1.35267491, 0.12623921, 1.12885889, 0.49857999,
-0.52771809],
[ 0.8251663 , -0.34056438, 0.41365914, 0.59521468,
0.77814932]],
[[ 0.84418071, 1.10451501, 0.3156979 , -1.71946682,
0.83712133],
[ 0.47051662, -1.08618576, -0.73211394, 0.33668081,
1.29597196],
[-1.38087117, -0.04018101, -0.6920373 , -1.06484634,
2.33578686],
[ 0.54886188, -0.7361285 , 1.72410008, 0.80058421,
0.39039427]]])
用法:
位于半闭半开区间[0, 1)之间返回随机浮点数
np.random.random(size=None)
例子:
import numpy as np
n1 = np.random.randm(size=(3,3))
# 输出
array([[0.30292115, 0.93516311, 0.17087608, 0.30503995],
[0.94134184, 0.77921837, 0.51556829, 0.43035969],
[0.03613825, 0.37428558, 0.98878298, 0.84480383],
[0.29060345, 0.45568861, 0.71736105, 0.45968661]])
用法:
位于半闭半开区间[0, 1)之间返回随机浮点数 ( 类似于random函数,但是,无需以元祖形式)
np.random.rand(d0, d1, d2...)
例子:
import numpy as np
np.random.rand(3, 4, 5)
# 结果 三个参数,三维数组,3块,每块4行5列
array([[[0.56016323, 0.69167638, 0.82799835, 0.02970935, 0.27672611],
[0.38621987, 0.49315331, 0.57483268, 0.9697013 , 0.6353953 ],
[0.64428337, 0.76332895, 0.199748 , 0.75873558, 0.16992543],
[0.60268831, 0.06353345, 0.9757341 , 0.07057654, 0.16076173]],
[[0.02701426, 0.67257958, 0.99772055, 0.7168825 , 0.50148429],
[0.08054075, 0.04133829, 0.66562393, 0.80930431, 0.77983864],
[0.80947662, 0.57800733, 0.27759842, 0.97862851, 0.15343574],
[0.24949613, 0.08640029, 0.80799454, 0.05105837, 0.9906546 ]],
[[0.51884528, 0.37004773, 0.00605422, 0.40602501, 0.49510074],
[0.69035824, 0.92461631, 0.55212997, 0.38917785, 0.98895728],
[0.63284274, 0.18999569, 0.4513288 , 0.12674819, 0.68599082],
[0.33370925, 0.1862602 , 0.52014437, 0.74681225, 0.58680919]]])
用法:
np.random.choice(a, size=None, replace=True, p=None)
a - 若为数组,则从中选值;若为单个整数,则选取range(a)中的值
replace - 若为True,则选取的元素会重复出现;反之,不会重复出现
p - 为数组,存放选取到每个数的可能性,即概率(若p存在,则p的个数必须指定和a相同)
例子:
import numpy as np
np.random.choice(4, size=(3,3), replace=True, p=[0.1, 0.1, 0.1, 0.7])
# 结果
array([[0, 3, 3],
[1, 3, 3],
[3, 3, 3]], dtype=int64)
用法:
把原来数组元素x位置打乱,它改变原来的数组。
np.random.shuffle(x)
例子:
import numpy as np
a = np.arange(10)
# 结果 array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
np.random.shuffle(a)
# 结果 array([9, 0, 3, 7, 2, 5, 4, 8, 6, 1])
注意:打乱以第一个索引为标准,即:一维数组a[ ],打乱元素;二维数组a[ ],打乱行;三维数组a[ ],打乱表示"个数"含义的数组
打乱后:(三维数组结构为(个数,行,列))
用法:
把原来数组元素x位置打乱,它不改变原来数组,即深拷贝了一份,具有返回值。
p = np.random.permutation(n1)
例子:
n1 = np.array([[2, 2, 1],
[1, 2, 2],
[1, 2, 1]])
p = np.random.permutation(n1)
p
# 结果
array([[1, 2, 1],
[2, 2, 1],
[1, 2, 2]])
用法:
给一个随机序列指定一个种子标记,凡是出现该标记的随机序列,都可得到相同的第一次指定的随机序列;若不指定,则默认种子标记为时间戳
np.random.seed(seed=None)
例子:
# 种下种子标记 - 标记为1的随机序列
np.random.seed(1)
np.random.randint(10, size=10)
# 结果 array([5, 8, 9, 5, 0, 0, 1, 7, 6, 9])
# 不标记种子时,随机种子标记,默认标记为时间戳
np.random.randint(10, size=10)
# 结果 array([2, 4, 5, 2, 4, 2, 4, 7, 7, 9])
# 写上1标记时,提取出该随机序列
np.random.seed(1)
np.random.randint(10, size=10)
# 结果 array([5, 8, 9, 5, 0, 0, 1, 7, 6, 9])
用法:
同seed
np.random.RandomState(seed=None)
用法:
位于闭区间[low, high]区间内返回的随机浮点数。较类似于random但有细微差异。
np.random.uniform(low, high, size=(3,3))
例子:
np.random.uniform(1.2, 1.2,size=(3,3))
# 结果
array([[1.2, 1.2, 1.2],
[1.2, 1.2, 1.2],
[1.2, 1.2, 1.2]])
用法:
同random
np.random.random_sample(size=None)
np.random.ranf(size=None)
np.sample(size=None)
用法:
normal(loc=0.0, scale=1.0, size=None)
loc:float
概率分布的均值,对应着整个分布的中心center
scale:float
概率分布的标准差,对应于分布的宽度,scale越大越矮胖,scale越小,越瘦高
size:int or tuple of ints
输出的shape,默认为None,只输出一个值
我们更经常会用到np.random.randn(size)所谓标准正太分布(μ=0, σ=1)
对应于np.random.normal(loc=0, scale=1, size)
“”"