加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Numpy 数组创建方法

发布时间:2023-07-01 15:07:49 所属栏目:教程 来源:
导读:在数组的属性和方法这一小节中我们学习到了如何查看数组的大小、维数(秩)、元素的数据类型、每个元素的大小等等。这一小节将详述如何从数值范围创建特殊数组,比如指定间隔的等差数列型数组、等比数列型数组等。
在数组的属性和方法这一小节中我们学习到了如何查看数组的大小、维数(秩)、元素的数据类型、每个元素的大小等等。这一小节将详述如何从数值范围创建特殊数组,比如指定间隔的等差数列型数组、等比数列型数组等。

1. 创建等间隔序列数组
通常定义一个等间隔序列数组(即等差数组),需要指定某些具体要素,例如起始值、终止值、步长、样本数量等。主要功能类似于 Python 内置的 range 函数,但是返回的是一个 ndarray。

1.1 numpy.arange 函数
arange 函数可以通过指定起始值、终止值、步长的方式,来创建一个我们需要的数组。其函数调用方法如下:

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

参数    描述
start    待创建数组序列的起始值,默认为0
stop    终止值。和range类似,创建的序列结果不包含终止值。
step    步长,默认为1
dtype    返回ndarray的数据类型,如果没有提供,则自动根据输入参数的类型进行推测
案例
创建一个长度为 10 的一维整数类型的数组。

np.arange(,,, dtype=np.int32)Out: 
    array([ , , , , , , , , , ])
可以看到数组并不包含终止值,是 [start, stop) 的区间。

在某些情况下,可以结合 reshape 函数使用,生成具有等差数列特性的数组矩阵:

np.arange(,,, dtype=np.float16).reshape(,)Out: 
    array([[ .,  ., ., ., .],   [., ., ., ., .],   [., ., ., ., .],   [., ., ., ., .]], dtype=float16)
    
1.2 numpy.linspace 函数
linspace 函数的功能是生成在某一确定区间内的一维数组,但是功能相较于 arange 更加强大。其函数调用方法如下:

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

参数    描述
start    待创建数组序列的起始值,默认为0
stop    终止值,如果endpoint为True,该值包含于数列中
num    要生成的等步长的样本数量,默认为50
endpoint    该值为 True时,数列中中包含stop值,反之不包含,默认是True。
retstep    若为 True ,函数会同时返回步长
dtype    返回ndarray的数据类型,如果没有提供,则自动根据输入参数的类型进行推测
案例
创建一个长度为 10 的一维整数类型的数组。

np.linspace(, , endpoint=False, num=, dtype=np.int32)Out: 
    array([, , , , , , , , , ])
观察发现:endpoint 设置为 False,生成的数组不包含终止值 10。

当然,想达到同样的效果,还可以这样写:

np.linspace(, , endpoint=True, num=, dtype=np.int32)Out: 
    array([, , , , , , , , , ])
当指定 retstep 为 True 时,linspace 函数会返回一个由数组和步长组成的、长度为2的元祖:

np.linspace(, , endpoint=True, num=, retstep=True, dtype=np.int32)Out: (array([, , , , , , , , , ]), )

2. 创建等比序列数组
类似的,创建等比序列数组的过程,也是由起始值、终止值、样本数量等元素统一定义的,但是在使用具体函数的时候,有些许不同。

2.1 numpy.logspace 函数
logspace 函数是通过指定基数、基数的起始指数、基数的终止指数、样本数量等元素,来定义一个等比数列。其函数调用方法如下:

numpy.logspace(start, stop, num=, endpoint=True, base=, dtype=None)
构造函数接受的参数详解如下:

参数    描述
start    数列的起始值,表示以base为底的幂的指数
stop    数列的终止值,表示以base为底的幂的指数;如果endpoint为True,幂包含于数列中
num    要生成的样本数量,默认为50
endpoint    该值为 True时,数列中中包含stop值,反之不包含,默认是True
base    基数
dtype    返回ndarray的数据类型,如果没有提供,则自动根据输入参数的类型进行推测
案例
当定义指定公比的等比数列时,logspace 函数非常方便。例如,定义一个2(2的1次方)、4(2的2次方)、……、1024(2的10次方),长度为10的一维等比数组:

np.logspace(, , num=, endpoint=True, base=, dtype=np.int32)Out: 
    array([   ,    ,    ,   ,   ,   ,  ,  ,  , ])

通过 logspace 创建的等比数列,起始值是以 base=2 为底、start=1 为指数的幂,终止值是以 base=2 为底、stop=10 为指数的幂,并指定样本数量生成的。生成的等比数列的指数满足等差数列分布的形式,因此logspace 函数产生的数列又称为对数等差数列。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章