【numpy】random.RandomState()函数用法详解

简介: 【numpy】random.RandomState()函数用法详解

前言


       官方文档请参阅:

image.png


正题


功能介绍


       可以通过numpy工具包生成模拟数据集,使用RandomState获得随机数生成器。那么为什么我们要使用 numpy.random.RandomState(int).rand(d0,d1,…,dn)生成随机数数组,而不是使用基于numpyp.random.rand(d0,d1,…,dn)?


       其实答案很简单,它们的区别在于:使用RandomState(int)可以自定义随机数种子,以保证每次执行代码,生成的数组都相同。


1. np.random.uniform()


numpy.random.uniform(low=0.0, high=1.0, size=None)

顾名思义,从一个均匀分布([low, high):半开区间)中进行采样。


Sample:


       (1)使用numpy.random.RandomState(1).uniform(1,2,(3,4))函数生成一个3行4列的数组,其中每个元素都是在[1,2]区间内 均匀分布 的随机数;


from numpy.random import RandomState
rdm = RandomState(1)  # 定义一个随机数种子
a = rdm.uniform(1,2,(3,4))  # 产生一个3行4列的数组,其中每个元素都是在[1,2]区间内均匀分布的随机数
print(a)
>>>
[[1.417022   1.72032449 1.00011437 1.30233257]
 [1.14675589 1.09233859 1.18626021 1.34556073]
 [1.39676747 1.53881673 1.41919451 1.6852195 ]]


注意 :这里 “1” 为随机数种子,只要随机数种子seed相同,产生的随机数系列就相同。


2. np.random.rand()


       Introduction:a convenience function for np.random.uniform(0, 1)


# 以参数列表的形式指定参数,而非元组。
# 内部指定区间为[0., 1.)。
numpy.random.rand(d0, d1, ..., dn)
                # 以参数列表的形式指定参数,而非元组
                # 内部指定区间为[0., 1.)
>>> np.random.rand(2, 2)
array([[ 0.9978749 ,  0.43597209],
       [ 0.30804578,  0.9632462 ]])
>>> np.random.rand((2, 2))
TypeError: an integer is required


Sample:


       (2)使用numpy.random.RandomState(1).rand(d0,d1,…,dn)函数生成一个给定维度的数组,其中每个元素在[0,1)之间(包含0,不包含1),dn表示各个维度,返回值为指定维度的array;


rdm = RandomState(1)  # 定义一个随机数种子
b = rdm.rand(1,2)   # 产生一个1行2列的数组
print(b)
>>>
[[0.417022   0.72032449]]

注意 :


(1)rand(0):表示随机产生一个空数组。


(2)rand(n):表示随机产生一个一维的,每个元素在[0,1)之间的n个数字的数组。


(3)rand(m,n):表示随机产生一个m行n列的二维数组。


(4)rand(d0,d1,…,dn):表示随机生成一个d 0 × d 1 × ⋯ × d n d0×d1×\cdots×dnd0×d1×⋯×dn维度的数组。


(1)# 基于 numpy.random.RandomState(1).rand(d0,d1,…,dn),随机生成每个元素均在[0,1)之间,维度为d0×d1×...×dn的数组
from numpy.random import RandomState
rdm = RandomState(1)   #定义一个随机数种子,实现每次代码执行生成的随机数集都相同
a = rdm.rand(0)  #生成一个空数组
print(a)
>>>
[]
b = rdm.rand(3)  # 生成一个一维的,每个元素在[0,1)之间的3个数字的数组
print(b)
>>>
[4.17022005e-01 7.20324493e-01 1.14374817e-04]
c = rdm.rand(1,2)  # 随机产生一个1行2列的,每个元素在[0,1)之间的二维数组
print(c)
>>>
[[0.417022   0.72032449]]
d = rdm.rand(3,4,2)  # 生成一个3×4×2维度的,每个元素在[0,1)之间的三维数组
print(d)
>>>
[[[4.17022005e-01 7.20324493e-01]
  [1.14374817e-04 3.02332573e-01]
  [1.46755891e-01 9.23385948e-02]
  [1.86260211e-01 3.45560727e-01]]
 [[3.96767474e-01 5.38816734e-01]
  [4.19194514e-01 6.85219500e-01]
  [2.04452250e-01 8.78117436e-01]
  [2.73875932e-02 6.70467510e-01]]
 [[4.17304802e-01 5.58689828e-01]
  [1.40386939e-01 1.98101489e-01]
  [8.00744569e-01 9.68261576e-01]
  [3.13424178e-01 6.92322616e-01]]]
(2)# 基于 np.random.rand(d0,d1,…,dn),随机生成每个元素均在[0,1)之间,维度为d0×d1×...×dn的数组
import numpy as np
x1 = np.random.rand(0)
print(x1)
>>>
[]
x2 = np.random.rand(1)
print(x2)
>>>
[0.09699241]
x3 = np.random.rand(3)
print(x3)
[0.99618768 0.13205612 0.95325353]
x4 = np.random.rand(2,3)
print(x4)
>>>
[[0.70589994 0.05531786 0.74656515]
 [0.63115967 0.74755883 0.74679566]]


完毕!


相关文章
|
2月前
|
Python
NumPy 教程 之 NumPy 统计函数 9
NumPy提供了多种统计函数,如计算数组中的最小值、最大值、百分位数、标准差及方差等。其中,标准差是一种衡量数据平均值分散程度的指标,它是方差的算术平方根。例如,对于数组[1,2,3,4],其标准差可通过计算各值与均值2.5的差的平方的平均数的平方根得出,结果为1.1180339887498949。示例代码如下: ```python import numpy as np print(np.std([1,2,3,4])) ``` 运行输出即为:1.1180339887498949。
119 50
|
3月前
|
Python
NumPy 教程 之 NumPy 算术函数 1
本教程介绍NumPy中的基本算术函数,如加(add())、减(subtract())、乘(multiply())及除(divide())。示例展示了两个数组(一个3x3矩阵与一数组[10,10,10])间的运算。值得注意的是,参与运算的数组需有相同形状或可按照NumPy的广播规则进行扩展。此外Numpy还提供了许多其他的算术函数以满足复杂计算需求。
43 7
|
3月前
|
Python
NumPy 教程 之 NumPy 算术函数 2
NumPy 教程 之 NumPy 算术函数 2
35 3
|
1月前
|
Python
Numpy学习笔记(一):array()、range()、arange()用法
这篇文章是关于NumPy库中array()、range()和arange()函数的用法和区别的介绍。
49 6
Numpy学习笔记(一):array()、range()、arange()用法
|
1月前
|
Python
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
NumPy库中的`np.concatenate`和`np.append`函数,它们分别用于沿指定轴拼接多个数组以及在指定轴上追加数组元素。
29 0
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
|
2月前
|
Python
NumPy 教程 之 NumPy 统计函数 10
NumPy统计函数,包括查找数组中的最小值、最大值、百分位数、标准差和方差等。方差表示样本值与平均值之差的平方的平均数,而标准差则是方差的平方根。例如,`np.var([1,2,3,4])` 的方差为 1.25。
102 48
|
2月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 8
NumPy提供了多种排序方法,包括快速排序、归并排序及堆排序,各有不同的速度、最坏情况性能、工作空间和稳定性特点。此外,NumPy还提供了`numpy.extract()`函数,可以根据特定条件从数组中抽取元素。例如,在一个3x3数组中,通过定义条件选择偶数元素,并使用该函数提取这些元素。示例输出为:[0., 2., 4., 6., 8.]。
26 8
|
2月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 5
NumPy中的排序方法及特性对比,包括快速排序、归并排序与堆排序的速度、最坏情况性能、工作空间及稳定性分析。并通过`numpy.argmax()`与`numpy.argmin()`函数演示了如何获取数组中最大值和最小值的索引,涵盖不同轴方向的操作,并提供了具体实例与输出结果,便于理解与实践。
24 5
|
2月前
|
机器学习/深度学习 搜索推荐 算法
NumPy 教程 之 NumPy 排序、条件筛选函数 2
介绍NumPy` 中的排序方法与条件筛选函数。通过对比快速排序、归并排序及堆排序的速度、最坏情况性能、工作空间需求和稳定性,帮助读者选择合适的排序算法。此外,还深入讲解了 `numpy.argsort()` 的使用方法,并通过具体实例展示了如何利用该函数获取数组值从小到大的索引值,并据此重构原数组,使得其变为有序状态。对于学习 `NumPy` 排序功能来说,本教程提供了清晰且实用的指导。
35 7
|
2月前
|
算法 索引 Python
Numpy 的一些以 arg 开头的函数
Numpy 的一些以 arg 开头的函数
42 0