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查询Mysql时返回字典结构的代码
Jun 18 Python
Python中map和列表推导效率比较实例分析
Jun 17 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
python如何定义带参数的装饰器
Mar 20 Python
Python爬虫包BeautifulSoup学习实例(五)
Jun 17 Python
Flask框架工厂函数用法实例分析
May 25 Python
Python批量修改图片分辨率的实例代码
Jul 04 Python
Python分析彩票记录并预测中奖号码过程详解
Jul 09 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
Python Web框架之Django框架cookie和session用法分析
Aug 16 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
Python使用BeautifulSoup4修改网页内容
May 20 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
PHP中的CMS的涵义
2007/03/11 PHP
php检测图片木马多进制编程实践
2013/04/11 PHP
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
PHP函数实现分页含文本分页和数字分页
2014/10/23 PHP
PHP多态代码实例
2015/06/26 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
javascript动画之圆形运动,环绕鼠标运动作小球
2010/07/20 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
javascript中字符串的定义示例代码
2013/12/19 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
Grunt入门教程(自动任务运行器)
2015/08/06 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
jQuery插件支持同一页面被多次调用
2016/02/14 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
jquery操作select常见方法大全【7种情况】
2019/05/28 jQuery
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
一个超级简单的python web程序
2014/09/11 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
python 字典操作提取key,value的方法
2019/06/26 Python
Django更新models数据库结构步骤
2020/04/01 Python
python中JWT用户认证的实现
2020/05/18 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
html5 canvas-2.用canvas制作一个猜字母的小游戏
2013/01/07 HTML / CSS
艺术用品:Arteza
2018/11/25 全球购物
机械设计及其自动化专业推荐信
2013/10/31 职场文书
总经理司机岗位职责
2015/04/10 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python