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函数式编程指南(四):生成器详解
Jun 24 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 Python
Laravel框架表单验证格式化输出的方法
Sep 25 Python
python3 动态模块导入与全局变量使用实例
Dec 22 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
python实现简单井字棋小游戏
Mar 05 Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 Python
python和JavaScript哪个容易上手
Jun 23 Python
解析python 中/ 和 % 和 //(地板除)
Jun 28 Python
Linux系统下升级pip的完整步骤
Jan 31 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
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
2016/02/23 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
javascript实现二分查找法实现代码
2007/11/12 Javascript
javascript比较文档位置
2008/04/08 Javascript
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
Javascript 拖拽的一些高级的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
浅谈js中对象的使用
2016/08/11 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
layui按条件隐藏表格列的实例
2019/09/19 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
python爬虫超时的处理的实例
2018/12/19 Python
python顺序执行多个py文件的方法
2019/06/29 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
python正则-re的用法详解
2019/07/28 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
2019/08/05 Python
python实现双色球随机选号
2020/01/01 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
html5使用canvas画三角形
2014/12/15 HTML / CSS
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
2014年实习期工作总结
2014/11/27 职场文书
五年级学生期末评语
2014/12/26 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS