我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

在特定场景下,arange()是一个可以快速获得ndarray类型等差数列一维数组的方式,最大特点是数值有规律,维度是1,成员是等差数列。苏南大叔使用numpy.arange()的场景,大概率是出于测试的目的,对于获得的ndarray里的真实数值,并不是太关心。

苏南大叔:如何利用arange方法,获得等差数列一维ndarray数组? - arange一维等差数列
如何利用arange方法,获得等差数列一维ndarray数组?(图5-1)

大家好,这里是苏南大叔的程序如此灵动博客,本文描述如何通过numpyarange()方法,快速获得一个ndarray对象。测试环境:win10python@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
[]

苏南大叔:如何利用arange方法,获得等差数列一维ndarray数组? - arange单个参数
如何利用arange方法,获得等差数列一维ndarray数组?(图5-2)

两个参数【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
[]

苏南大叔:如何利用arange方法,获得等差数列一维ndarray数组? - arange两个参数
如何利用arange方法,获得等差数列一维ndarray数组?(图5-3)

三个参数

第三个参数就是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]

苏南大叔:如何利用arange方法,获得等差数列一维ndarray数组? - arange三个参数
如何利用arange方法,获得等差数列一维ndarray数组?(图5-4)

四个参数

最后出现的参数就是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不但能够影响数据类型,也依然能够影响数据输出的值。

苏南大叔:如何利用arange方法,获得等差数列一维ndarray数组? - arange四个参数
如何利用arange方法,获得等差数列一维ndarray数组?(图5-5)

关于【非负】

只是单一参数的时候,才会有【非负】的概念。多个参数的时候,是可能会出现负数的。代码如下:

import numpy as np
x = np.arange(-5, 5, 2)
print(x)

输出:

[-5 -3 -1  1  3]

结束语

.arange()方法获得了一个有规律的一维ndarray整数数组,后续可以通过.reshape()操作,重新排列数值并修改维度,敬请期待下一篇reshape方法的文章。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   python