Python基础 | 你想要的随机数生成都在这里

简介: Python基础 | 你想要的随机数生成都在这里

在利用Python在进行数据分析的时候,经常需要按照某种规则快速生成实数序列,尤其是在学习matplotlib绘图的时候,需要模拟生成数据,然后开始绘制。

那么在Python中有哪些方式生成实数序列呢?本文将为大家一一介绍,全面总结。

在numpy中有多种生成序列的函数,分别是arange、linspace、logspace和geomspace,那么这几种方式有哪些区别呢?我们在日常开发中如何选择合适的方法来生成需要的实数呢?


arange

numpy.arange([start, ]stop, [step, ]dtype=None)

start默认是0,step默认是1.

这个函数的用法非常简单,给定一个start, 一个stop, 一个步长,然后就可以得到你想要的数据。

注意:

生成的数据不包含stop的值。


案例1:直接给定stop,start和step采用默认值。

从0开始,按照步长为1,生成数据,到3结束,注意不含3.

In [32]:

np.arange(3)

Out[32]:

array([0, 1, 2])


案例2:指定start和stop,按照默认的step=1的方式来生成数据。

In [33]:

np.arange(1,3)


Out[33]:

array([1, 2])


案例3:指定start、stop和step的值。

start为1,stop为3,步长为0.1.


In [35]:

np.arange(1,3,0.1)


接下来我们将和大家一起来看看另外的三个***space的用法。


linspace

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

linspace的作用是生成等差数列。

num默认为50, endpoint默认为True, retstep默认是False即不返回步长大小

endpoint指的是生成的序列中是否包含stop这个数,True就是包含,False就是不包含。


案例1:1-50之间生成50个数。

此处并没有指定生成的实数序列的个数,采用的是默认值50个。

In [4]:

np.linspace(1,50)





案例2:1-50之间生成25个数

In [36]:

np.linspace(1,50,25)





案例3:1-50之间生成25个数,并打印步长信息。

In [37]:

np.linspace(1,50,retstep=True)





案例4:1-50之间生成25个数,不含50,且打印步长。

In [40]:

np.linspace(1,50,endpoint=False,retstep=True)




logspace

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)

logspace的作用是生成以底数为base,指数为start-stop的实数序列,其用法与linspace非常类似,其中base参数指定了底数。


案例1:生成1-50,底数为10的指数序列。

In [41]:

np.logspace(1,50)




案例2:生成1-50,底数为2的序列。

In [42]:

np.logspace(1,50,base=2)




案例3:1-50区间内生成5个数,底数为2的序列。

In [44]:

np.logspace(1,50,num=5,base=2)



geomspace

numpy.geomspace(start, stop, num=50, endpoint=True, dtype=None)

geomspace的作用是生成等比数列,指定start、stop和序列个数,即可生成等比数列。


案例1:1-50区间内,生成默认的50个数的等比数列。

In [49]:

np.geomspace(1,50)





案例2:1-16区间内,生成5个数的等比数列。

In [50]:

np.geomspace(1,16,num=5)



结语

本文为大家介绍了利用numpy生成实数序列的四种方法,分别是arange,linspace,logspace和geomspace。今后在不同的应用场景下可以选择不同的方式来生成数据。

目录
相关文章
|
7月前
|
数据采集 存储 测试技术
Python生成随机数插件Faker的用法
Python生成随机数插件Faker的用法
198 0
|
算法 安全 量子技术
【Python】蒙特卡洛模拟 | PRNG 伪随机数发生器 | 马特赛特旋转算法 | LCG 线性同余算法 | Python Random 模块
【Python】蒙特卡洛模拟 | PRNG 伪随机数发生器 | 马特赛特旋转算法 | LCG 线性同余算法 | Python Random 模块
358 0
|
2月前
|
算法 Go Python
获取指定范围符合正态分布的随机数Go/Python
获取指定范围符合正态分布的随机数Go/Python
41 0
|
2月前
|
数据可视化 数据挖掘 Python
生成100个随机数python并绘制成柱子
通过上述步骤,我们不仅实践了Python编程的基本技巧,如模块导入、列表推导式、循环打印,还踏上了数据可视化的第一步。这样的实践不仅增进了对随机数生成机制的理解,也为数据分析和可视化打下了坚实基础。记住,每一次代码的跳跃,都是向数据科学殿堂迈进的一步。
64 0
|
4月前
|
算法 安全 Linux
如何在 Python 中生成随机数
【8月更文挑战第29天】
250 6
|
6月前
|
Python
python之数值计算、math库、随机数
python之数值计算、math库、随机数
|
7月前
|
Python
【Python进阶(六)】——随机数与数组
【Python进阶(六)】——随机数与数组
|
7月前
|
资源调度 Python
python 产生随机数
【4月更文挑战第19天】python 产生随机数
45 1
|
7月前
|
资源调度 Python
|
7月前
|
Python
Python random模块(获取随机数)常用方法和使用例子
`random`模块在Python中用于生成随机数。
78 0