如何利用arange方法,获得等差数列一维ndarray数组?
发布于 作者:苏南大叔 来源:程序如此灵动~
在特定场景下,arange()是一个可以快速获得ndarray类型等差数列一维数组的方式,最大特点是数值有规律,维度是1,成员是等差数列。苏南大叔使用numpy.arange()的场景,大概率是出于测试的目的,对于获得的ndarray里的真实数值,并不是太关心。

大家好,这里是苏南大叔的程序如此灵动博客,本文描述如何通过numpy的arange()方法,快速获得一个ndarray对象。测试环境:win10,python@3.11.0。
arange,苏南大叔觉得可能是"a range","一个范围"的意思。定义ndarray的方式
正常来说,是通过下面的方式,定义一个ndarray对象的。参考文章:
import numpy as np
sn = np.array( ["苏","南","大","叔"] )
print(sn)
print(type(sn))输出:
['苏' '南' '大' '叔']
<class 'numpy.ndarray'>当要定义的ndarray的值很多的时候,这样写就比较痛苦了。如果这个时候,这些值恰好是有规律的一系列数值,就可以使用本文的np.arange()方法来进行生成了。它的限制就是:
- 数值有规律。
- 维度是一。
- 数值是大于等于零的等差数列。
- 可能会出现小数的情况。
numpy.arange([start,]stop[,step][,dtype])start默认为零。step默认为壹。
单一参数【非负】
numpy.arange(stop)生成从0开始到对应数字的一系列等差数列值,[0,stop)。stop小于等于零的话,不报错,只不过生成的是个空数组。
例如:
import numpy as np
sn = np.arange(3)
print( sn ) # [0 1 2]
print( type(sn) ) # <class 'numpy.ndarray'>
print( sn.ndim ) # 1
sn = np.arange(0)
print( sn ) # []输出:
[0 1 2]
<class 'numpy.ndarray'>
1
[]
两个参数【not非负】
numpy.arange(start, stop)生成数的范围是[start,stop)。如果start大于等于stop的话,不报错,只不过生成的是个空数组。
例如:
import numpy as np
sn = np.arange(5,8)
print( sn ) # [5 6 7]
print( type(sn) ) # <class 'numpy.ndarray'>
print( sn.ndim ) # 1
sn = np.arange(8,5)
print( sn ) # []输出:
[5 6 7]
<class 'numpy.ndarray'>
1
[]
三个参数
第三个参数就是step,默认步长为一,但是设置为小数点也是可以的。但是把step设置为负数的话,这个方法返回值就是空了,似乎有些不灵光。
numpy.arange(start, stop, step)测试代码:
import numpy as np
sn = np.arange(1,3,0.5)
print( sn ) # [1. 1.5 2. 2.5]
print( type(sn) ) # <class 'numpy.ndarray'>
print( sn.ndim ) # 1
sn = np.arange(1,5,2) # [1 3]
print( sn )输出:
[1. 1.5 2. 2.5]
<class 'numpy.ndarray'>
1
[1 3]
四个参数
最后出现的参数就是dtype,主要可以设置返回值,被区分为浮点数还是整数。看例子说话:
numpy.arange(start, stop, step, dtype)测试代码:
import numpy as np
sn = np.arange(1,3,0.5,dtype=int)
print( sn ) # [1 1 1 1]
print( type(sn) ) # <class 'numpy.ndarray'>
print( sn.ndim ) # 1
sn = np.arange(1,5,2,dtype=float) # [1. 3.]
print( sn )输出:
[1 1 1 1]
<class 'numpy.ndarray'>
1
[1. 3.]可见dtype不但能够影响数据类型,也依然能够影响数据输出的值。

关于【非负】
只是单一参数的时候,才会有【非负】的概念。多个参数的时候,是可能会出现负数的。代码如下:
import numpy as np
x = np.arange(-5, 5, 2)
print(x)输出:
[-5 -3 -1 1 3]结束语
本.arange()方法获得了一个有规律的一维ndarray整数数组,后续可以通过.reshape()操作,重新排列数值并修改维度,敬请期待下一篇reshape方法的文章。