老师,请问如何生成在规定区间里的随机浮点数呢

来源:3-4 创建Numpy数组(和矩阵)

慕婉清4872412

2018-06-28

写回答

2回答

liuyubobobo

2018-06-29

np.random.random() 返回一个 [0, 1) 之间的随机浮点数(均匀);

np.random.random()  * interval 返回一个 [0, interval) 之间的随机浮点数;

start + np.random.random()  * interval 返回一个 [start, start + interval) 之间的随机浮点数;


所以,对于任意一个规定区间,首先找到这个区间的长度interval和最小值start,

比如生成一个 [6.6, 8.8) 之间的浮点数,interval = 2.2, start = 6.6,

所以写成:6.6 + np.random.random()  * 2.2


在 np.random.random() 中,可以传入参数size,

6.6 + np.random.random(10)  * 2.2,生成一个包含有10个浮点数的向量,每个浮点数在 [6.6, 8.8) 之间;

6.6 + np.random.random((3, 3))  * 2.2,,生成一个3*3的随机矩阵,每个元素在 [6.6, 8.8) 之间;


如果你想生成的随机数满足其他分布,可以调用np.random中其他相应函数。np.random中的函数文档如下:

https://docs.scipy.org/doc/numpy-1.14.0/reference/routines.random.html


加油!:)

3
1
慕婉清4872412
非常感谢老师您的耐心解答
2018-06-29
共1条回复

你鸡

2018-06-28

比如这样可以生成2到10以内的10个随机浮点数??

2+8 * np.random.rand(10)


2
2
liuyubobobo
也谢谢你的分享:)
2018-06-29
共2条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5893 学习 · 2454 问题

查看课程