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警察与小偷的实现之一客户端与服务端通信实例
Oct 09 Python
Fiddler如何抓取手机APP数据包
Jan 22 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
Python中查看文件名和文件路径
Mar 31 Python
python基础之包的导入和__init__.py的介绍
Jan 08 Python
python 限制函数调用次数的实例讲解
Apr 21 Python
运用PyTorch动手搭建一个共享单车预测器
Aug 06 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
如何利用python进行时间序列分析
Aug 04 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
May 28 Python
Python list列表删除元素的4种方法
Nov 01 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
php调用Google translate_tts api实现代码
2013/08/07 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
js树形控件脚本代码
2008/07/24 Javascript
eval与window.eval的差别分析
2011/03/17 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
javascript 实现字符串反转的三种方法
2013/11/23 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
谈谈JavaScript中的几种借用方法
2016/08/09 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
2020/12/01 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
Python函数学习笔记
2008/10/07 Python
一些常用的Python爬虫技巧汇总
2016/09/28 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
Python的mysql数据库的更新如何实现
2017/07/31 Python
python3连接MySQL数据库实例详解
2018/05/24 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
东南亚地区最大的购物网站Lazada新加坡站点:Lazada.sg
2016/07/17 全球购物
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
办理护照工作证明
2014/10/10 职场文书
工作会议简报
2015/07/20 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
话题作文之成长
2019/12/09 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL