湖北医院网站建设,wordpress 移动导航,网站备案填写要求吗,网站开发工具和平台numpy.random模块对Python内置的random进行了补充#xff0c;增加了一些用于高效生成多种概率分布的样本值的函数。 例如#xff0c;你可以用normal来得到一个标准正态分布的44样本数组#xff1a; 而Python内置的random模块则只能一次生成一个样本值。从下面的测试结果中可…numpy.random模块对Python内置的random进行了补充增加了一些用于高效生成多种概率分布的样本值的函数。 例如你可以用normal来得到一个标准正态分布的4×4样本数组 而Python内置的random模块则只能一次生成一个样本值。从下面的测试结果中可以看出如果需要产生大量样本值numpy.random快了不止一个数量级 我们说这些都是伪随机数是因为它们都是通过算法基于随机数生成器种子在确定性的条件下生成的。你可以用NumPy的np.random.seed更改随机数生成种子 numpy.random的数据生成函数使用了全局的随机种子。要避免全局状态你可以使用numpy.random.RandomState创建一个与其它隔离的随机数生成器 示例随机漫步
我们通过模拟随机漫步来说明如何运用数组运算。先来看一个简单的随机漫步的例子从0开始步长1和1出现的概率相等。
下面是一个通过内置的random模块以纯Python的方式实现1000步的随机漫步 图4-4是根据前100个随机漫步值生成的折线图
In [249]: plt.plot(walk[:100]) 不难看出这其实就是随机漫步中各步的累计和可以用一个数组运算来实现。因此我用np.random模块一次性随机产生1000个“掷硬币”结果即两个数中任选一个将其分别设置为1或1然后计算累计和 有了这些数据之后我们就可以沿着漫步路径做一些统计工作了比如求取最大值和最小值 现在来看一个复杂点的统计任务——首次穿越时间即随机漫步过程中第一次到达某个特定值的时间。假设我们想要知道本次随机漫步需要多久才能距离初始0点至少10步远任一方向均可。np.abs(walk)10可以得到一个布尔型数组它表示的是距离是否达到或超过10而我们想要知道的是第一个10或10的索引。可以用argmax来解决这个问题它返回的是该布尔型数组第一个最大值的索引True就是最大值 注意这里使用argmax并不是很高效因为它无论如何都会对数组进行完全扫描。
在本例中只要发现了一个True那我们就知道它是个最大值了。