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模块学习 re 正则表达式
May 19 Python
Python字典简介以及用法详解
Nov 15 Python
Python进阶-函数默认参数(详解)
May 18 Python
Python简单生成8位随机密码的方法
May 24 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
解决pandas read_csv 读取中文列标题文件报错的问题
Jun 15 Python
Ubuntu下Python2与Python3的共存问题
Oct 31 Python
CentOS 7下安装Python3.6 及遇到的问题小结
Nov 08 Python
pandas DataFrame索引行列的实现
Jun 04 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
Python读取excel文件中带公式的值的实现
Apr 17 Python
删除pycharm鼠标右键快捷键打开项目的操作
Jan 16 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系列学习之日期函数使用介绍
2012/08/18 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
2012/01/15 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
js array数组对象操作方法汇总
2019/03/18 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
vue中实现高德定位功能
2019/12/03 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
JS使用for in有序获取对象数据
2020/05/19 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
和孩子一起学习python之变量命名规则
2018/05/27 Python
Python操作mongodb的9个步骤
2018/06/04 Python
Python登录系统界面实现详解
2019/06/25 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
Python3爬虫中关于中文分词的详解
2020/07/29 Python
用python实现一个简单的验证码
2020/12/09 Python
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
Clarisonic美国官网:科莱丽声波洁面仪
2017/10/12 全球购物
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
Android面试宝典
2013/08/06 面试题
优秀护士先进事迹
2014/05/08 职场文书
实习推荐信
2014/05/10 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
感恩教育观后感
2015/06/17 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
PHP新手指南
2021/04/01 PHP
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
Spring Security使用单点登录的权限功能
2022/04/03 Java/Android
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB