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实现列表转换成字典数据结构的方法
Mar 11 Python
python监控进程脚本
Apr 12 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
Jul 12 Python
Python实现计算字符串中出现次数最多的字符示例
Jan 21 Python
解决pyshp UnicodeDecodeError的问题
Dec 06 Python
使用Python实现牛顿法求极值
Feb 10 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
Mar 08 Python
Python pandas如何向excel添加数据
May 22 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
pycharm配置python 设置pip安装源为豆瓣源
Feb 05 Python
python自动化测试之Selenium详解
Mar 13 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
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
下拉列表select 由左边框移动到右边示例
2013/12/04 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
vue数据操作之点击事件实现num加减功能示例
2019/01/19 Javascript
vue axios封装及API统一管理的方法
2019/04/18 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
[05:48]DOTA2英雄梦之声vol21 屠夫
2014/06/20 DOTA
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
Python实现将数据框数据写入mongodb及mysql数据库的方法
2018/04/02 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
Python多个装饰器的调用顺序实例解析
2020/05/22 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
python中类与对象之间的关系详解
2020/12/16 Python
如何用python写个模板引擎
2021/01/14 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
门卫人员岗位职责
2013/12/24 职场文书
黄金酒广告词
2014/03/21 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
食品质检员岗位职责
2015/04/08 职场文书
2015年计划生育责任书
2015/05/08 职场文书
钱学森观后感
2015/06/04 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
小学三年级作文之写景
2019/11/05 职场文书
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python