python: np.random.rand(); random.randn(); random.randint()

目录

np.random.rand():

np.random.randn():

np.random.randint():

总结:


np.random.rand():

该函数旨在输出0~1的正态分布随机数。

其参数可以是1个,也可以是多个。

函数内部可以不写参数,默认为1,输出1个随机数。

1个参数:(标注出了数组类型、数组中某一数据类型、数组中指定数据类型,之后的函数将不再打印)

bp = np.random.rand(5)
print(bp)
'''
[0.63860047 0.20494917 0.71744941 0.57771626 0.05738536]
'''

print(type(bp))  # 输出整个数组的类型
'''<class 'numpy.ndarray'>'''

print(bp.dtype)  # 输出数组中某一数据的类型
'''float64'''

print(type(bp[0]))  # 输出数组中某一特定数据的类型
'''<class 'numpy.float64'>'''

2个参数:

bp = np.random.rand(2, 5)
print(bp)
'''
[[0.04584862 0.89884039 0.15048622 0.85667698 0.33957756]
 [0.26056558 0.91414757 0.81265246 0.28835074 0.8752219 ]]
'''

print(type(bp))
'''<class 'numpy.ndarray'>'''

print(type(bp[0][0]))
'''<class 'numpy.float64'>'''

print(bp.dtype)
'''float64'''

3个参数:

bp = np.random.rand(2, 3, 6)
print(bp)
'''
[[[0.29355152 0.36418488 0.57288373 0.23121366 0.77525914 0.91182249]
  [0.11061901 0.56624443 0.65380633 0.16177954 0.51376845 0.34236651]
  [0.86329415 0.94866034 0.01262085 0.40051701 0.23710327 0.8007319 ]]

 [[0.10439231 0.56609333 0.21951407 0.77451145 0.88022135 0.98708041]
  [0.87907334 0.40271109 0.40436079 0.59138323 0.0090736  0.35471926]
  [0.04549659 0.82237559 0.26183944 0.63680142 0.49524638 0.76323674]]]
'''

np.random.randn():

该函数也可以选择传入参数,如果无参数,默认生成一个随机数。

 1个参数:

bp = np.random.randn(5)
print(bp)
'''[-1.2059577   0.08470974 -1.2405498  -0.81016356  0.87720857]'''
# random.randn()中包含的正态分布不再局限于0~1.

2个参数:

bp = np.random.randn(5, 10)
print(bp)
'''
[[-0.67563787 -1.25053402 -0.30690377  0.06044844 -0.66634499 -0.44958653
  -0.84786291  0.88637067  0.47462662 -1.971317  ]
 [ 0.02615875 -0.20511404 -1.29732807  0.37929375  1.04446571  1.86551993
   1.73426848 -0.02259967  0.00473308  0.58051319]
 [-0.0414957  -0.29372383  2.56496433  1.50675684  1.14309802 -0.84808843
  -1.66561286 -0.85713026 -0.4051721   1.62229511]
 [ 0.43598049 -0.71143996  0.51205806 -1.36722078  0.17960464 -0.97653317
  -0.74682933 -0.45678944  0.00582994 -0.41184397]
 [-2.2403889  -0.98562374 -0.80794757 -0.30207929  0.30875752  1.79907259
  -0.24868943 -0.32498253  1.96848773 -0.56428991]]
'''

3个参数:

bp = np.random.randn(2, 3, 4)
print(bp)
'''
[[[ 0.30660819  0.15113495  1.33431896  0.60571113]
  [-0.07590934  0.25166113  0.3878639   1.10898214]
  [-0.02660977  0.69844979  0.16861439  0.49215229]]

 [[ 0.80898226 -0.32945657 -2.14101349 -0.34956693]
  [ 1.05979311  1.37072896  0.57766574  0.40105103]
  [-0.09101539 -0.20881871 -0.20413871  2.27217952]]]
'''

np.random.randint():

该函数的参数不能为空!否则会报错。

该函数输出的是整数型,包头不包尾,函数内部参数有:low, high, size, dtype,其中,low必须小于high,size可以不写,默认为1。

bp = np.random.randint(10,2)
# 会报错!!!

bp = np.random.randint(2, 10)
# 生成[2, 10) 之间的随机整数

bp = np.random.randint(1, 10, 5)
print(bp)
# [8 6 5 3 4]

总结:

1. 可以使用type(数据[索引]) ==> type(ndarray[index]) 来输出值的数据类新。与ndarray.dtype相类似,单输出的结果不太相同
2. np.random.rand() 输出的是0~1范围内的正态分布。输出的结果可以是一维列表,也可以是多维列表。多为列表的索引类似套娃
3. np.random.randn() 输出的范围较np.random.rand() 更为广泛,其包含了复数,但也属于正态分布
   参数为1个的时候,输出的是一维数组,一维数组的个数为参数; 
   参数为2个的时候,输出2维数组,第一个参数决定二维数组中一维数组的个数,第二个参数确定每个一维数组中数据的个数
   参数为3个的时候,输出3维数组,第一个参数确定三维数组中二维数组的个数,第二个参数确定二维数组中一维数组的个数……以此类推
4. 注意正态分布是不需要在内部传递参数的,如果想要设定正态分布的范围,可以选择使用np.random.normal(),里面包含了两个参数: loc, scal, size
5. np.random.randint() 输出的是随机int构成的数组。一维数组,输出时函数会提醒索要输入的参数。依然包头不包尾。


日拱一卒,功不唐捐