博客
关于我
Python中的Numpy库之random中random、rand、randn、randint的用法
阅读量:556 次
发布时间:2019-03-09

本文共 1828 字,大约阅读时间需要 6 分钟。

在Numpy中,随机数生成是一个强大的工具,能够满足从简单到复杂的多种需求。本文将深入探讨Numpy中的随机数函数,包括randomrandintrandrandn,分点介绍它们的特点及使用方法。

1. random 函数

random函数是Numpy中最基础的随机数生成工具。它接收一个size参数,用于指定生成随机数的数量和维度。以下是对size参数的详细探索:

情况一:size 为整数

size参数传入一个整数时,函数会生成一个一维数组:

print(np.random.random(3))

输出结果为:

[0.20367297 0.55265547 0.72267248]

这是一个形状为(3,)的一维数组。需要注意的是,与列表不同,数组在Numpy中是一个更高效的数据结构。

情况二:size 为元组

size参数传入一个元组时,函数会生成一个二维数组。例如:

print(np.random.random((3,3)))

输出结果为:

[[0.88325725 0.105841883 0.138825066] [0.489045258 0.725233743 0.896902437] [0.362093551 0.559233974 0.184422779]]

元组可以表示多维数组的尺寸,而每个元素对应一个维度的大小。在实际使用中,开发者可以灵活使用元组或列表来指定数组的形状。

注意事项

  • size参数默认值为None,如果不指定,默认生成一个一维数组。
  • 生成的随机数范围是[0.0, 1.0),即左闭右开区间。
  • 2. randint 函数

    randint函数用于生成均匀分布随机整数。它的主要参数包括:

    • lower:生成数的下界,默认为0。
    • high:生成数的上界。如果不指定,默认为1。
    • size:指定生成随机数的数量和维度。

    以下是对randint参数的详细探索:

    情况一:仅指定 lower

    当仅指定lower时,函数会生成一个单个整数,且该整数小于lower。默认情况下,high为1。例如:

    print(np.random.randint(10))

    输出结果为:

    9

    情况二:同时指定 lower 和 high

    当同时指定lowerhigh时,函数会生成一个位于[lower, high)范围内的整数。例如:

    print(np.random.randint(10, 23))

    输出结果为:

    17

    情况三:同时指定 size

    当指定size参数时,函数可以生成多个随机整数,维度为多维数组。例如:

    print(np.random.randint(10, 22, (3, 2)))

    输出结果为:

    [[18 11] [18 16] [10 17]]

    需要注意的是,lowerhigh支持浮点数输入,能够生成浮点数范围内的随机整数。

    3. rand 和 randn 函数

    randrandn 函数虽然参数接收方式相同,但生成随机数的分布规律不同。

    rand 函数

    rand函数生成的是均匀分布随机数,数值范围是[0.0, 1.0),与random函数的输出完全一致。例如:

    print(np.random.rand(2))

    输出结果为:

    [0.57531079 0.67555903]

    当指定多维数组时:

    print(np.random.rand(2, 3))

    输出结果为:

    [[0.61497674 0.199005 0.4309077] [0.02964575 0.70530525 0.26741078]]

    randn 函数

    randn函数生成的是正态分布随机数,具有均值为0和标准差为1的钟型分布。例如:

    print(np.random.rand(2))

    输出结果为:

    [0.57531079 0.67555903]

    当指定多维数组时:

    print(np.randommdir(2, 3))

    不过请注意,以上示例可能存在笔误,randn函数的实现与rand相仿,主要区别在于数值的分布。具体来说,若需要自定义均值和标准差,可以使用ndarray ~normal方法。

    总结

    以上是对Numpy中随机数生成函数的综合介绍,涵盖了randomrandintrandrandn四个函数的基本用法和特点。通过灵活配置size参数,开发者可以根据具体需求生成所需的随机数分布,充分发挥Numpy的强大功能。

    转载地址:http://lugsz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现MinHeap最小堆算法(附完整源码)
    查看>>
    Objective-C实现minimum cut最小切割流算法(附完整源码)
    查看>>
    Objective-C实现minimum partition最小分区算法(附完整源码)
    查看>>
    Objective-C实现Minimum Vertex Cover最小顶点覆盖算法(附完整源码)
    查看>>
    Objective-C实现MSRCR算法(附完整源码)
    查看>>
    Objective-C实现multilayer perceptron classifier多层感知器分类器算法(附完整源码)
    查看>>
    Objective-C实现multiplesThreeAndFive三或五倍数的算法 (附完整源码)
    查看>>
    Objective-C实现n body simulationn体模拟算法(附完整源码)
    查看>>
    Objective-C实现naive string search字符串搜索算法(附完整源码)
    查看>>
    Objective-C实现natural sort自然排序算法(附完整源码)
    查看>>
    Objective-C实现nested brackets嵌套括号算法(附完整源码)
    查看>>
    Objective-C实现nevilles method多项式插值算法(附完整源码)
    查看>>
    Objective-C实现newtons second law of motion牛顿第二运动定律算法(附完整源码)
    查看>>
    Objective-C实现newton_forward_interpolation牛顿前插算法(附完整源码)
    查看>>
    Objective-C实现newton_raphson牛顿拉夫森算法(附完整源码)
    查看>>
    Objective-C实现NLP中文分词(附完整源码)
    查看>>
    Objective-C实现NLP中文分词(附完整源码)
    查看>>
    Objective-C实现NMS非极大值抑制(附完整源码)
    查看>>
    Objective-C实现not gate非门算法(附完整源码)
    查看>>
    Objective-C实现number of digits解字符数算法(附完整源码)
    查看>>