numpy 产生随机数的几种方法

 更新时间:2023年02月10日 10:20:36   作者:智能学习者  
本文主要介绍了numpy 产生随机数的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在矩阵应用的过程中,经常需要使用随机数,那么怎么使用numpy 产生随机数呢 ,为此专门做一个总结。

random模块用于生成随机数,下面是一些常用的函数用法:
numpy.random.seed(n) 其中n为任意指定

当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数

numpy.random.seed(0)

np.random.seed(0)
a = np.random.rand(4)  
a
array([0.5488135 , 0.71518937, 0.60276338, 0.54488318])

主要介绍了生成符合均匀分布,正态分布等数组和随机选取数以及打乱数组顺序的方法。

1.np.random.rand 生成一个0到1之间的均匀分布

import numpy as np
a = np.random.rand(2,3,4)
print(a,a.shape)

[[[0.18000344 0.03724064 0.15040061 0.93007827]
  [0.59423019 0.35439936 0.49193457 0.37633185]
  [0.83924196 0.4908405  0.49387427 0.98718216]]

 [[0.20072849 0.90163245 0.36710883 0.56668257]
  [0.61402791 0.46602958 0.56086072 0.83099671]
  [0.85196098 0.62774727 0.62826083 0.41739078]]] (2, 3, 4)

2.np.random.randn 返回一个符合标准正态分布的数组。

a = np.random.randn(2,3,4) 
print(a,a.shape)

[[[ 0.32062268  0.08867553 -0.83741647 -0.21917891]
  [-0.06516898 -1.17123767  2.2403833  -0.77741757]
  [ 0.33532261  0.27309929  1.07279005  0.79952468]]

 [[ 0.18503166  0.90777579 -1.52837098 -1.23783753]
  [ 0.9327577   1.61876194  0.52191996  0.53451075]
  [-1.05485337  1.01472352  0.19376936  0.00278223]]] (2, 3, 4)

3.np.random.randint返回一定范围的一维或者多维整数

numpy.random.randint(low, high=None, size=None, dtype=’l’)

返回随机整数,范围区间为[low,high),包含low,不包含high

size为数组维度,元组形式,如(2,3)#2行3列

high没有填写时,默认生成随机数的范围是[0,low)

dtype指定数据类型,默认int

a = np.random.randint(low=6,high=10,size=(2,3,4),dtype='int')
print(a,a.shape)

[[[8 8 7 8]
  [8 8 6 9]
  [9 6 7 7]]

 [[7 7 9 8]
  [9 6 6 7]
  [8 9 7 7]]] (2, 3, 4)

4.np.random.choice从给定的一维数组中随机选择数生成随机数

numpy.random.choice(a, size=None, replace=True, p=None)

a为一维数组类似数据或整数;size为数组维度;p为数组中的数据出现的概率

a为整数时,对应的一维数组为np.arange(a)

a = np.random.choice(a = [3,5,6],size=(2,3,4),replace=True,p=[0.1,0.5,0.4])
print(a,a.shape)

[[[5 6 3 5]
  [6 5 5 5]
  [6 5 6 6]]

 [[5 5 5 3]
  [6 5 6 6]
  [5 6 5 6]]] (2, 3, 4)

5.np.random.normal(loc=0.0, scale=1.0, size=None),生成符合指定分布的正态分布。

a = np.random.normal(loc=4,scale=6,size=(2,3,4))
print(a)

[[[13.19667529 12.81615262  4.92968455  6.26897512]
  [-1.32671449 -7.88477881  1.9125271   4.93809381]
  [11.38174408 11.21427909  1.6760391   2.1861835 ]]

 [[-2.29131779 -4.52010762 -6.23762114 15.70465237]
  [ 0.94208691  1.37155419 -3.51677216  8.66494213]
  [-5.68338709  2.72355832 -1.37279937  6.32141499]]]

6.np.random.random(size=None),生成符合0到1的均匀分布数组。

a = np.random.random((2,3,4))
print(a)

[[[0.19658236 0.36872517 0.82099323 0.09710128]
  [0.83794491 0.09609841 0.97645947 0.4686512 ]
  [0.97676109 0.60484552 0.73926358 0.03918779]]

 [[0.28280696 0.12019656 0.2961402  0.11872772]
  [0.31798318 0.41426299 0.0641475  0.69247212]
  [0.56660145 0.26538949 0.52324805 0.09394051]]]

7. np.random.ranf(size=None),生成符合0到1的均匀分布数组。

a = np.random.ranf((10))
a
array([0.82894003, 0.00469548, 0.67781654, 0.27000797, 0.73519402,
       0.96218855, 0.24875314, 0.57615733, 0.59204193, 0.57225191])

8.np.random.uniform(low=0.0, high=1.0, size=None),生成符合指定均匀分布的数组

g=np.random.uniform(-1,1,10)#指定均匀分布
print(g)

[ 0.07315842  0.79334259  0.98067789 -0.56620603  0.32615641 -0.47335525
 -0.958698    0.51675731 -0.3599657  -0.23307221]

9.np.random.shuffle(x),随机打乱数组顺序

a = np.arange(10)
np.random.shuffle(a)
print(a)

[6 3 4 9 0 8 1 5 2 7]

10. 产生其他分布的函数

  • binomial() ,二项分布
  • chisquare(),卡方分布
  • poisson(),泊松分布
  • uiform(),均匀分布
  • normal(),正态分布

到此这篇关于numpy 产生随机数的几种方法的文章就介绍到这了,更多相关numpy 产生随机数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python全局变量关键字global的简单使用

    Python全局变量关键字global的简单使用

    python中global关键字主要作用是声明变量的作用域,下面这篇文章主要给大家介绍了关于Python全局变量关键字global的简单使用,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • Django与遗留的数据库整合的方法指南

    Django与遗留的数据库整合的方法指南

    这篇文章主要介绍了Django与遗留的数据库整合的方法指南,Django是最具人气的Python开发框架,需要的朋友可以参考下
    2015-07-07
  • 在Python中使用Neo4j的方法

    在Python中使用Neo4j的方法

    今天小编就为大家分享一篇关于在Python中使用Neo4j的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 使用Python的PIL模块来进行图片对比

    使用Python的PIL模块来进行图片对比

    这篇文章主要介绍了使用Python的PIL模块来进行图片对比的方法,搜索引擎最基本的图片搜索也是利用图片颜色值的对比来实现的,需要的朋友可以参考下
    2016-02-02
  • Python实现备份文件实例

    Python实现备份文件实例

    这篇文章主要介绍了Python实现备份文件的方法,可实现针对各类常见扩展名的文件进行备份的功能,需要的朋友可以参考下
    2014-09-09
  • python学习-List移除某个值remove和统计值次数count

    python学习-List移除某个值remove和统计值次数count

    这篇文章主要介绍了 python学习-List移除某个值remove和统计值次数count,文章基于python的相关内容展开详细介绍,需要的小伙伴可以参考一下
    2022-04-04
  • Python的joblib模型固化函数解析

    Python的joblib模型固化函数解析

    这篇文章主要介绍了Python的joblib模型固化函数解析,joblib提供了三个与对象序列化和模型固化相关的函数hash,dump,load,joblib.hash主要是为了提供一个numpy对象的hash方法,需要的朋友可以参考下
    2023-08-08
  • Python实现合并字典的方法

    Python实现合并字典的方法

    这篇文章主要介绍了Python实现合并字典的方法,涉及Python针对字典的遍历与合并的相关技巧,需要的朋友可以参考下
    2015-07-07
  • Python获取好友地区分布及好友性别分布情况代码详解

    Python获取好友地区分布及好友性别分布情况代码详解

    利用Python + wxpy 可以快速的查询自己好友的地区分布情况,以及好友的性别分布数量。还可以批量下载好友的头像,拼接成大图。感兴趣的朋友跟随小编一起看看吧
    2019-07-07
  • 使用Cython中prange函数实现for循环的并行

    使用Cython中prange函数实现for循环的并行

    Cython中提供了一个prange函数,专门用于循环的并行执行。这个 prange的特殊功能是Cython独一无二的,并且prange只能与for循环搭配使用,不能独立存在。本文就将使用 prange 实现 for 循环的并行,感兴趣的可以了解一下
    2022-08-08

最新评论