Python生成随机数组的方法小结


Posted in Python onApril 15, 2017

本文实例讲述了Python生成随机数组的方法。分享给大家供大家参考,具体如下:

研究排序问题的时候常常需要生成随机数组来验证自己排序算法的正确性和性能,今天把Python生成随机数组的方法稍作总结,以备以后查看使用。

一、使用random模块生成随机数组

python的random模块中有一些生成随机数字的方法,例如random.randint, random.random, random.uniform, random.randrange,这些函数大同小异,均是在返回指定范围内的一个整数或浮点数,下边简单解释一下这几个函数。

1、random.randint(low, hight) -> 返回一个位于[low,hight]之间的整数

该函数接受两个参数,这两个参数必须是整数(或者小数位是0的浮点数),并且第一个参数必须不大于第二个参数

>>> import random
>>> random.randint(1,10)
5
>>> random.randint(1.0, 10.0)
5

2、random.random() -> 不接受参数,返回一个[0.0, 1.0)之间的浮点数

>>> random.random()
0.9983625479554628

3、random.uniform(val1, val2) -> 接受两个数字参数,返回两个数字区间的一个浮点数,不要求val1小于等于val2

>>> random.uniform(1,5.0)
2.917249424176132
>>> random.uniform(9.9, 2)
3.4288029275359024

*4、random.randrange(start, stop, step) -> 返回以start开始,stop结束,step为步长的列表中的随机整数,同样,三个参数均为整数(或者小数位为0),若start大于stop时 ,setp必须为负数.step不能是0.*

>>> random.randrange(1, 100, 2) #返回[1,100]之间的奇数
95
>>> random.randrange(100, 1, -2) #返回[100,1]之间的偶数
46

运行效果图如下:

Python生成随机数组的方法小结

5、生成随机数组

下边我们用random.randint来生成一个随机数组

import random
def random_int_list(start, stop, length):
  start, stop = (int(start), int(stop)) if start <= stop else (int(stop), int(start))
  length = int(abs(length)) if length else 0
  random_list = []
  for i in range(length):
    random_list.append(random.randint(start, stop))
  return random_list

接下来我们就可以用这个函数来生成一个随机的整数序列了

>>> random_int_list(1,100,10)
[54, 13, 6, 89, 87, 39, 60, 2, 63, 61]

二、使用numpy.random模块来生成随机数组

1、np.random.rand 用于生成[0.0, 1.0)之间的随机浮点数, 当没有参数时,返回一个随机浮点数,当有一个参数时,返回该参数长度大小的一维随机浮点数数组,参数建议是整数型,因为未来版本的numpy可能不支持非整形参数。

import numpy as np
>>> np.random.rand(10)
array([ 0.56911206, 0.99777291, 0.18943144, 0.19387287, 0.75090637,
    0.18692814, 0.69804514, 0.48808425, 0.79440667, 0.66959075])

当然该函数还可以用于生成多维数组,这里不做详述。

2、np.random.randn该函数返回一个样本,具有标准正态分布。

>>> np.random.randn(10)
array([-1.6765704 , 0.66361856, 0.04029481, 1.19965741, -0.57514593,
    -0.79603968, 1.52261545, -2.17401814, 0.86671727, -1.17945975])

3、np.random.randint(low[, high, size]) 返回随机的整数,位于半开区间 [low, high)。

>>> np.random.randint(10,size=10)
array([4, 1, 4, 3, 8, 2, 8, 5, 8, 9])

4、random_integers(low[, high, size]) 返回随机的整数,位于闭区间 [low, high]。

>>> np.random.random_integers(5)
4

5、np.random.shuffle(x) 类似洗牌,打乱顺序;np.random.permutation(x)返回一个随机排列

>>> arr = np.arange(10)
>>> np.random.shuffle(arr)
>>> arr
[1 7 5 2 9 4 3 6 0 8]
>>>> np.random.permutation(10)
array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6])
Python 相关文章推荐
深入讲解Python中面向对象编程的相关知识
May 25 Python
Python的迭代器和生成器
Jul 29 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
Python2和Python3中print的用法示例总结
Oct 25 Python
PyQt5每天必学之布局管理
Apr 19 Python
Linux 修改Python命令的方法示例
Dec 03 Python
在python 中实现运行多条shell命令
Jan 07 Python
python实现网页自动签到功能
Jan 21 Python
Python matplotlib修改默认字体的操作
Mar 05 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
解决pip安装的第三方包在PyCharm无法导入的问题
Oct 15 Python
python opencv实现图像配准与比较
Feb 09 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
Apr 15 #Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
Apr 15 #Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 #Python
Python编程判断一个正整数是否为素数的方法
Apr 14 #Python
python编程实现归并排序
Apr 14 #Python
python实现折半查找和归并排序算法
Apr 14 #Python
Python+Wordpress制作小说站
Apr 14 #Python
You might like
《心理测量者3》剧场版动画预告
2020/03/02 日漫
提问的智慧
2006/10/09 PHP
php 变量未定义等错误的解决方法
2011/01/12 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
PHP批量上传图片的具体实现方法介绍.
2014/02/26 PHP
PHP利用hash冲突漏洞进行DDoS攻击的方法分析
2015/03/26 PHP
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
jquery实现图片水平滚动效果代码分享
2015/08/26 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
JS从一组数据中找到指定的单条数据的方法
2016/06/02 Javascript
表单中单选框添加选项和移除选项
2016/07/04 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
2019/11/12 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
如何用Python合并lmdb文件
2018/07/02 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
C#和SQL Server的面试题
2016/08/12 面试题
给老师的道歉信
2014/01/11 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
小学端午节活动总结
2015/02/11 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
Go使用协程交替打印字符
2021/04/29 Golang
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android