今天准备用Python生成生成指定范围与数量的随机浮点数数组,但Numpy并没有能直接创建任意范围内随机浮点数的函数。
所以我利用numpy.random模块自己写了一个,用于扩大选择范围。
模块里的函数:numpy.random.rand(num)
import numpy as np
def randfloat(num, l, h):
if l > h:
return None
else:
a = h - l
b = h - a
out = (np.random.rand(num) * a + b).tolist()
out = np.array(out)
return out
num:数量,数值范围是[0,1);
l:下限;
h:上限;
举例:生成200个大于3且小于7的浮点数
a = randfloat(num = 200, l = 3, h = 7)
print(a)
结果:
[5.29088302 6.25864809 6.28811283 4.78606949 6.67903492 5.78122229
6.91040028 4.00104229 6.35404862 5.00690862 5.97468924 5.48587934
6.45393051 4.50306728 4.18181283 4.18476166 6.3994035 5.46175947
4.05107209 4.79075569 6.93937804 5.44377244 4.76213251 5.39888674
5.02216943 6.34737212 4.68193906 6.3143376 5.58413908 4.83381739
5.65374681 4.78391694 6.68600757 4.45922475 6.5646872 5.27405524
5.96092798 6.49170333 6.14202966 4.02584943 5.65650217 4.4552557
4.12476151 4.26935449 5.37079795 4.59272618 5.20727226 4.21188787
6.97945082 5.67829667 5.50247745 6.54253777 4.86098012 6.86235072
4.15254967 5.19620613 6.56104324 5.79981746 6.76715048 6.46301669
6.30737013 4.50043623 4.55130738 5.87674201 5.89947085 5.47928153
4.07517154 6.86705104 5.59582937 5.76030386 6.45530803 4.5068216
6.63538331 5.98789564 4.17438102 4.91188961 6.11731793 5.00531156
4.25270281 6.30935484 6.65348405 5.90507071 6.3274484 4.35961812
6.60029286 6.39761297 4.23231382 5.13083492 5.81937753 4.6544662
4.63643924 5.18865528 6.9046025 5.81595056 5.9705111 6.79825231
4.4463218 4.43020649 6.81435853 6.33447623 4.97094135 4.57283608
6.13050346 5.89749509 6.55496393 4.02846703 5.68938491 5.1017069
5.09444861 6.64248501 5.60052242 6.8327306 4.64243679 6.76874815
6.06534299 6.70608579 6.22222573 4.85149337 6.07540021 6.53010761
5.76305727 6.52427636 5.14499296 4.75436886 6.89981554 5.48659807
4.27571213 5.98458163 4.65657178 4.47330826 4.12229849 5.20872735
4.55585136 6.07018684 5.46120899 6.99700064 6.3069777 5.15680283
6.39053083 4.47602404 6.04848813 6.29587695 5.95529048 5.85717061
5.61567336 6.62424944 6.72168629 6.87043191 4.02337412 4.44425985
6.14860698 6.50963427 5.70469755 6.50406053 4.49405795 6.26944962
4.26611486 6.59213205 6.93563609 5.44635095 4.54888831 5.00577298
6.30349588 5.23331328 5.4430886 6.26561914 4.13844297 4.11872121
6.27470511 4.88787265 5.68945774 4.27208632 6.08926185 4.99292812
6.19406316 5.25828127 5.78749006 4.63846567 4.11484806 5.83807627
6.59444996 5.16546501 5.83423861 6.00159317 5.94607648 5.03819078
6.93601616 4.35329003 4.74713205 6.91053558 6.95496332 5.32575459
6.5162614 6.15022939 5.71555457 5.57301965 4.49637265 4.03561941
6.68183549 4.28042849]