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 07 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 Python
浅谈python对象数据的读写权限
Sep 12 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
Python minidom模块用法示例【DOM写入和解析XML】
Mar 25 Python
浅谈python新式类和旧式类区别
Apr 26 Python
对PyQt5的输入对话框使用(QInputDialog)详解
Jun 25 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
Jan 14 Python
浅谈Python3中print函数的换行
Aug 05 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函数
2006/10/09 PHP
PHP 地址栏信息的获取代码
2009/01/07 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
2016/12/10 PHP
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
js控制框架刷新
2008/08/01 Javascript
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
jsonp原理及使用
2013/10/28 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
javascript修改图片src的方法
2015/01/27 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
基于JavaScript实现 网页切出 网站title变化代码
2016/04/03 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
python list中append()与extend()用法分享
2013/03/24 Python
Python创建模块及模块导入的方法
2015/05/27 Python
构建Python包的五个简单准则简介
2015/06/15 Python
Python3使用requests登录人人影视网站的方法
2016/05/11 Python
python做接口测试的必要性
2019/11/20 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
python打包多类型文件的操作方法
2020/09/21 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
会计工作决心书
2014/03/11 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书