一 . np.random.rand(*dn)
给定一个shape,返回该shape的一个服从[0, 1)均匀分布的数组。
若是不给参数,就返回取自于[0 ,1)均匀分布的一个数值。
import numpy as np
print(np.random.rand(1, 2)) # 输出:[[0.06115588 0.03628276]]
print(np.random.rand()) # 输出:0.23635138617590068
二. np.random.randint(low, high=None, size=None, dtype='l')
若low,high均是一个整数,则返回一个shape=size的服从[low, high)离散均匀分布的数组;若不给high值,则返回的值在[0, 1)之间;若没给size值,则返回单个数值。
import numpy as np
print(np.random.randint(low=2)) # 输出:1
print(np.random.randint(low=3, size=2)) # 输出:[0 0]
print(np.random.randint(low=1, high=10, size=3)) # 输出:[6 6 5]
print(np.random.randint(low=1, high=10, size=(2, 3))) # 输出:[[8 9 3] [7 8 6]]
三. np.random.randn(*dn)
返回给定shape的服从标准正态分布的一个数组;若是不给shape值,则返回一个取自标准正态分布的值。
import numpy as np
print(np.random.randn()) # 输出:-0.9847833653162511
print(np.random.randn(2, 1)) # 输出:[[ 0.48744532] [-0.34613323]]
四. np.random.rand_sample(size=None)
返回给定shape=size的取自[0.0, 1.0)连续均匀分布的一个数组;若没给size值,则返回单个float数值。
import numpy as np
print(np.random.random_sample()) # 输出:0.35547669396662784
print(np.random.random_sample(size=(1, 2))) # 输出:[[0.27258449 0.16332564]]
五. np.random.uniform(low=0.0, high=1.0, size=None)
返回给定shape=size的取自于[low, high)均匀分布的一个数组;若是没给high值,则取值范围在[0, low)之间;若没给size值,则返回一个数值。
import numpy as np
print(np.random.uniform(low=0.0, high=1.0, size=None)) # 输出:0.5935727830713399
print(np.random.uniform(low=3)) # 输出:1.3777730740044312
print(np.random.uniform(low=1.0, high=10.0, size=3)) # 输出:[2.68387734 9.23915982 4.4058597 ]
print(np.random.uniform(low=1.0, high=10.0, size=(1, 2))) # 输出:[[6.58332898 1.41826063]]
六. np.random.choice(a, size=None, replace=True, p=None)
a可以是一个一维类数组,也可以是一个整数,若是整数的话,可将其看作np.arange(a);该方法随机返回shape=size的取自于数组a的数组。
size若是一个正数,表示返回单个值,若是一个元组,则返回一个shape=size的数组。
replace若为True,相当于是可放回的抽样,允许数组a中的某一值可以重复被抽到;若为False,则反之。
p是一个shape同a的数组,表示抽取到a中每个数的概率。
需要注意的是:
1. a和p的shape要一致;
2. 若是replace=False,则size不能大于a的shape,即想要返回的数组中元素个不能超过a数组的元素个数。
import numpy as np
arr = [3, 2, 5, 9, -3]
p = [0.2, 0.1, 0.4, 0.1, 0.2]
print(np.random.choice(a=10)) # 输出:4
print(np.random.choice(a=arr)) # 输出:3
print(np.random.choice(a=arr, size=3, replace=False)) # 输出:[ 5 3 -3]
print(np.random.choice(a=arr, size=(3, 3), replace=True)) # 输出:[[3 3 5] [3 9 5] [2 2 2]]
print(np.random.choice(a=arr, size=3, replace=True, p=p)) # 输出:[ 9 -3 5]
七. np.random.permutation(x)
对所给数组进行随机排序;若是给的一个整数,则将其看作np.arange(x);若是所给为一个多维数组,则仅给第1维打乱排序。
import numpy as np
print(np.random.permutation(3)) # [1 0 2]
print(np.random.permutation([2, 4, 6, 8])) # [4 6 8 2]
print(np.random.permutation(np.arange(6).reshape(2, 3))) # [[3 4 5] [0 1 2]]