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中的一些类型转换函数小结
Feb 10 Python
深入解析Python编程中JSON模块的使用
Oct 15 Python
深入解析Python中的__builtins__内建对象
Jun 21 Python
详解Python nose单元测试框架的安装与使用
Dec 20 Python
Django使用Celery异步任务队列的使用
Mar 13 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
python中字符串数组逆序排列方法总结
Jun 23 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
Jun 27 Python
Python常用库大全及简要说明
Jan 17 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 Python
Python代码风格与编程习惯重要吗?
Jun 03 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 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
帝国cms目录结构分享
2015/07/06 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
使用JavaScript switch case 另类写法
2010/03/14 Javascript
JavaScript setTimeout和setInterval的使用方法 说明
2010/03/25 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
JQuery自动触发事件的方法
2015/06/13 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
jquery实现限制textarea输入字数的方法
2017/09/06 jQuery
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
vue实现导航菜单和编辑文本的示例代码
2020/07/04 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
wxPython中文教程入门实例
2014/06/09 Python
Python中用于返回绝对值的abs()方法
2015/05/14 Python
Django处理文件上传File Uploads的实例
2018/05/28 Python
python 调用钉钉机器人的方法
2019/02/20 Python
django 类视图的使用方法详解
2019/07/24 Python
Python PO设计模式的具体使用
2019/08/16 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
Bloomingdale’s阿联酋:选购奢华时尚、美容及更多
2020/09/22 全球购物
分厂厂长岗位职责
2013/12/29 职场文书
领导干部保密承诺书
2014/08/30 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python