欢迎访问宙启技术站
智能推送

Numpy中的linspace()函数用法详解

发布时间:2023-06-26 19:24:29

numpy中的linspace()函数可以生成等间隔离散的一维数组。该函数的语法如下:

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

其中,start表示起始值,stop表示终止值,num表示生成的样本数(默认为50),endpoint表示是否包含终止值(默认为True),retstep表示是否返回样本之间的步长(默认为False),dtype表示生成数组的数据类型(默认为None,自动推断)。

例如,生成一个从0到5的一维数组,包含10个等间隔的样本:

import numpy as np
arr = np.linspace(0, 5, 10)
print(arr)

输出结果为:

[0.         0.55555556 1.11111111 1.66666667 2.22222222 2.77777778
 3.33333333 3.88888889 4.44444444 5.        ]

可以看到,生成的数组中包含起始值和终止值,且相邻样本之间的间隔相等。

如果想生成一个从5到0的一维数组,可以设定起始值为5,终止值为0,但需要加上参数endpoint=False,表示不包含终止值:

import numpy as np
arr = np.linspace(5, 0, 10, endpoint=False)
print(arr)

输出结果为:

[5.         4.44444444 3.88888889 3.33333333 2.77777778 2.22222222
 1.66666667 1.11111111 0.55555556 0.        ]

可以看到,生成的数组按照从大到小的顺序排列。

另外,如果设置retstep=True,会在返回数组时附带每个样本之间的步长。

import numpy as np
arr, step = np.linspace(0, 5, 10, retstep=True)
print(arr)
print(step)

输出结果为:

[0.         0.55555556 1.11111111 1.66666667 2.22222222 2.77777778
 3.33333333 3.88888889 4.44444444 5.        ]
0.5555555555555556

可以看到,每个样本之间的步长为0.5556。