python: np.random.rand(); random.randn(); 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构成的数组。一维数组,输出时函数会提醒索要输入的参数。依然包头不包尾。
日拱一卒,功不唐捐