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 相关文章推荐
使用setup.py安装python包和卸载python包的方法
Nov 27 Python
Python中的闭包实例详解
Aug 29 Python
编程语言Python的发展史
Sep 26 Python
python中管道用法入门实例
Jun 04 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
python游戏地图最短路径求解
Jan 16 Python
使用python接入微信聊天机器人
Mar 31 Python
Python3+Appium安装使用教程
Jul 05 Python
Django 创建/删除用户的示例代码
Jul 24 Python
python json.dumps中文乱码问题解决
Apr 01 Python
使用python接受tgam的脑波数据实例
Apr 09 Python
Python二元算术运算常用方法解析
Sep 15 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获取MSN好友列表类的实现代码
2013/06/23 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
一些常用的Javascript函数
2006/12/22 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
2017/09/18 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
用vite搭建vue3应用的实现方法
2021/02/22 Vue.js
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
Python使用struct处理二进制的实例详解
2017/09/11 Python
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
Internet体系结构
2014/12/21 面试题
医学求职自荐信
2014/06/21 职场文书
机关领导查摆四风思想汇报
2014/09/13 职场文书
民警个人对照检查剖析材料
2014/09/17 职场文书
护理见习报告范文
2014/11/03 职场文书
社区好人好事材料
2014/12/26 职场文书
教师考核评语大全
2014/12/31 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers