首页 > 其他分享 >Numpy 创建随机数数组 随机数组

Numpy 创建随机数数组 随机数组

时间:2023-10-07 11:37:52浏览次数:27  
标签:随机数 random 生成 组为 数组 np Numpy

 

创建随机数数组

NumPy提供了强大的生成随机数的功能。真正的随机数很难获得,实际中使用的都是伪随机数。大部分情况下,伪随机数就能满足需求。当然,某些特殊情况除外,如进行高精度的模拟实验。

对于NumPy,与随机数相关的函数都在random模块中,其中包括了可以生成服从多种概率分布随机数的函数。
1. random函数

random函数是最常见的生成随机数的方法,用于在区间[0,1)中生成均匀分布的随机数或随机数数组。
函数格式为random(size=None),size参数可选,即结果数组的形状元组,默认值为None,生成一个[0,1)之间的随机浮点数。

# 结果为一维数组
print('生成的随机数组为:',np.random.random(10))

生成的随机数组为:array([0.78283652, 0.9154314 , 0.41306707, 0.77055199, 0.16990905,
       0.07928419, 0.17580154, 0.5834303 , 0.52031781, 0.98319803])

# 结果为二维数组
print('生成的随机数组为:',np.random.random((2,5)))

结果为:
生成的随机数组为:array([[0.97113777, 0.50128748, 0.76695156, 0.85181191, 0.25288016],
       [0.60372028, 0.67677372, 0.91640817, 0.61216549, 0.23824247]])


2. rand函数
rand函数在区间[0,1)中生成服从均匀分布的随机数或随机数数组。

函数格式为rand(d0, d1, ..., dn),参数可选,即结果数组的形状,每个维度占据一个参数位置。如果没有参数则生成一个[0,1)之间的随机浮点数。

print('生成的随机数为:\n',np.random.rand())

生成的随机数为:
 0.7217603302000459

print('生成的随机数组为:\n',np.random.rand(1))

生成的随机数组为:
 [0.19385678]


print('生成的随机数组为:\n',np.random.rand(10,5))

生成的随机数组为:
 [[0.49840862 0.03578359 0.00181009 0.67397351 0.78615651]
 [0.5804709  0.97197456 0.63421724 0.64432133 0.03697043]
 [0.97348562 0.01799491 0.99825668 0.10233273 0.55043191]
 [0.70151956 0.51284018 0.2016238  0.60990257 0.56710229]
 [0.64986193 0.82797604 0.91317567 0.34350347 0.9934578 ]
 [0.14026724 0.19500193 0.39243871 0.49482824 0.81348489]
 [0.01888658 0.28372039 0.598484   0.46529771 0.30162018]
 [0.51269246 0.62850629 0.16219104 0.15306988 0.4664314 ]
 [0.36235548 0.93563423 0.3229593  0.79106824 0.52974968]
 [0.97405183 0.92076197 0.63987763 0.62506821 0.17320877]]

   

3. randn函数

randn函数可以生成服从正态分布的随机数或随机数数组。标准正态分布俗称高斯分布,正态分布是大自然中最常见的分布,标准正态分布就是期望为0,方差为1的正态分布。

函数格式为rand(d0, d1, ..., dn)。
如果没有参数,则返回一个值,如果有参数,则返回(d0, d1, …, dn)个值,这些值都是从标准正态分布中随机取样得到的。
参数:
    d0, d1, …, dn:应该为正整数,表示维度。

返回值
    Z:ndarray或者float。

# 结果为随机数
print('生成的随机数为:\n',np.random.randn())

生成的随机数为:
 0.099700533892262

# 结果为一维数组
print('生成的随机数组为:\n',np.random.randn(1))

生成的随机数组为:
 [-0.4034816]

# 结果为二维数组
print('生成的随机数组为:\n',np.random.randn(10,5))

生成的随机数组为:
 [[-0.92244038 -0.14297778 -1.62183926  0.69450445 -0.46215443]
 [-1.43031877 -1.15707293  0.95024971 -0.97172887 -0.00521778]
 [-0.42761885  0.89326249 -1.42080774 -0.16936234  0.28452475]
 [-0.29800584  0.56017163  0.57995082  0.10571659 -0.66880545]
 [ 0.05009425  1.47425088  0.13893255  0.32171053 -1.30117759]
 [ 0.04855885  0.24891627  0.1961776  -0.50640093  0.77361007]
 [-1.07036266 -0.76379055  0.1406273   0.30699761  0.58440356]
 [ 1.05698817  1.15176542  0.84752212  0.98985422 -1.50556324]
 [-1.62727776  0.18529418 -0.56364778  1.08166426  1.75008011]
 [ 0.81312321  1.02836285  1.35420898  0.32063411  0.38178463]]


4. randint函数

randint函数可以生成给定上下限范围的随机数。
函数格式为randint(low, high=None, size=None, dtype=int)。

其中,参数low为最小值,high为最大值,size为数组维度,dtype为数据类型,默认的数据类型是np.int。倘若high没有填写,默认生成随机数的范围就是[0,low)。size是可选项,如果不设置,则仅生成一个随机整数,如果想生成多个随机整数,则需要用一个元组来指定随机整数数组的维度信息。

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

print('生成的随机数组为:',np.random.randint(2,10,size = [2,5]))

生成的随机数组为: [[4 5 4 9 8]
 [2 7 2 3 2]]
————————————————
链接:https://blog.csdn.net/mighty13/article/details/119548103

 

标签:随机数,random,生成,组为,数组,np,Numpy
From: https://www.cnblogs.com/emanlee/p/17628300.html

相关文章

  • numpy 数组 的 轴
    numpy数组的轴 1认识“轴”的概念如同笛卡尔坐标系一样,NumPy张量也有轴。现在我们先以熟悉二维向量为例来说明这个概念,二维向量的轴是沿行和列的方向。轴的编号是从0开始的,因此“第一轴”实际上是“axis0”。“第二轴”是“axis1”,依此类推。在可视化观感上,“axis0”就......
  • numpy 多维数据的理解(三维数据,更多维度)
    numpy 多维数据的理解(三维数据,更多维度)In[22]:a=np.array([[11,12,13,14,15],...:[16,17,18,19,20],...:[21,22,23,24,25],...:[26,27,28,29,30],...:[31,32,33,34,......
  • TypeScript入门到精通——TypeScript类型系统基础——数组类型
    数组类型 数组是十分常用的数据结构,它表示一组有序元素的集合。在TypeScript中,数组值的数据类型为数组类型。一、数组类型定义 TypeScript提供了以下两种方式来定义数组类型:简单数组类型表示法泛型数组类型表示法1.1、简单数组类型表示法在TypeScript中,你可以使......
  • 2310-数组习题
     strlen函数-求字符串长度的,找\0之前出现的字符个数 sizeof-操作符-计算变量/类型所占内存大小,单位是字节答案为A  #include<stdio.h>voidinit(intarr[],intsz){for(inti=0;i<sz;i++)arr[i]=0;}voidprint(intarr[],intsz){......
  • 力扣-2535-数组元素和与数字和的绝对差
    给你一个正整数数组nums。元素和是nums中的所有元素相加求和。数字和是nums中每一个元素的每一数位(重复数位需多次求和)相加求和。返回元素和与数字和的绝对差。注意:两个整数x和y的绝对差定义为|x-y|。 示例1:输入:nums=[1,15,6,3]输出:9解释:nums的元素......
  • Java生成6位随机数(数字和拼音)Demo
    publicstaticvoidmain(String[]args){//length=6生成的位数intlength=6;StringBuffersb=newStringBuffer();StringALLCHAR="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";Randomrandom=newRandom();f......
  • 动态规划问题(1)子数组系列
    这几天刷了子数组系列的动态规划题目,在这里写下这篇博客,总结记录一下做这些题目的经验,同时也相当于复习。题目一:最大子数组和题目链接:53.最大子数组和-力扣(LeetCode)当我们看完题目,看完例题之后,发现是一个动态规划的子数组问题。那么做动态规划问题有五步第一步:状态表示对于这种......
  • 为什么处理已排序数组比处理未排序数组更快?
    在这个C++代码中,在计时区域之前对数据进行排序(*)使得主循环快6倍:#include<algorithm>#include<ctime>#include<iostream>intmain(){//生成数据constunsignedarraySize=32768;intdata[arraySize];for(unsignedc=0;c<arraySize;++c)......
  • 力扣-1646-获取生成数组中的最大值
    给你一个整数n。按下述规则生成一个长度为n+1的数组nums:nums[0]=0nums[1]=1当2<=2*i<=n时,nums[2*i]=nums[i]当2<=2*i+1<=n时,nums[2*i+1]=nums[i]+nums[i+1]返回生成数组nums中的最大值。 示例1:输入:n=7输出:3解释:根据规则:......
  • Numpy手撸神经网络实现线性回归
    Numpy手撸神经网络实现线性回归简介在深度学习理论学习之后,我们常常会直接使用深度学习框架(如PaddlePaddle、PyTorch或TensorFlow)来构建模型,而忽略了底层各种层结构的实现。但对于深度学习的学习者来说,是否能够亲手编写一个简单的模型呢?本文将介绍如何使用NumPy手动实现一个神经......