本文主要是介绍如何生成一个位于[-1, 1]之间的随机浮点数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天在博客的评论区被一个网友问到了该如何生成一个位于[-1, 1]
之间的浮点数。开始看到这个问题我有点儿懵了。很久没写过代码的我感觉一时间想不起来以前类似问题的处理方式了。后来逐渐地回想起来,故这里来记录一下。阅读本篇之前推荐阅读np.random.random()和 np.random.random_sample()是一致的(超链接点击跳转)。
解决思路:
首先numpy
模块中的np.random.random()
和 np.random.random_sample()
函数生成的均是位于半开半闭区间[0, 1)
之间的浮点数。因此如果我们先对该函数的结果乘以2
,就可以得到位于半开半闭区间[0, 2)
之间的浮点数。 然后再向左平移一个单位就可以得到位于半开半闭区间[-1, 1)
之间的浮点数了。请看如下代码:
import numpy as nparray = -1 + 2 * np.random.random((3, 3))
print(array)
"""
[[ 0.11504118 -0.90703551 0.89904515][-0.01701258 0.36016338 -0.28436574][ 0.15276044 -0.83398664 -0.45870966]]
"""
可以看到所有地输出结果均符合我们预先的假设。那么这里可能有一些比较较真的人就会说,你这个是半开半闭区间,而我要的是[-1, 1]
,你这个函数取不到1
啊。那我不得不回答是的,然而在使用随机数的时候,随机数上限只是一个点,比如这里的1
,在你的程序运行的过程中能随机取到这个点的概率极小,因此对你的模拟结果并不会造成很大的影响,因此,这个问题在某种意义上可以被忽略。这也是numpy
的开发人员在取随机浮点数时只设计了半开半闭区间的原因。相反,如果要随机取某一个区间上的整数,那么两端均是闭合区间就会被考虑。实际中也可以通过numpy.random.random_integers()
函数实现。
如果大家觉得有用,请高抬贵手给一个赞让我上推荐让更多的人看到吧~
这篇关于如何生成一个位于[-1, 1]之间的随机浮点数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!