pythonnumpy中linspace函数
python numpy 中linspace函数
numpy提供linspace函数(有时也称为np.linspace)是python中创建数值序列⼯具。与Numpy arange函数类似,⽣成结构与Numpy 数组类似的均匀分布的数值序列。两者虽有些差异,但⼤多数⼈更愿意使⽤linspace函数,其很好理解,但我们需要去学习如何使⽤。
本⽂我们学习linspace函数及其他语法,并通过⽰例解释具体参数。最后也顺便提及np.linspace 和 np.arange之间的差异。
1. 快速了解
通过定义均匀间隔创建数值序列。其实,需要指定间隔起始点、终⽌端,以及指定分隔值总数(包括起始点和终⽌点);最终函数返回间隔类均匀分布的数值序列。请看⽰例:
np.linspace(start = 0, stop = 100, num = 5)linspace numpy
代码⽣成 NumPy 数组 (ndarray 对象),结果如下:array([ 0., 25., 50., 75., 100.])
如图:
让我们解释下,Numpy linspace函数依照定义间隔⽣成均匀分布的数值。我们使⽤start和stop参数指定间隔,这⾥我们设定为0和100,同时指定在范围内⽣产5个观测值,因此函数⽣成5个均匀分布的元素。第⼀个是0,最后⼀个100,其他三个分布在0和100之间。
下⾯我们详细看下linspace函数的参数,让你更清楚理解其机制。
2. linspace函数语法
linspace的语法⾮常简单直接。如下图所⽰,⾸先是函数名称,对应代码为 np.linspace (假设你已导⼊importe NumPy as np)。
图2
上图有三个参数,是平常使⽤最频繁的三个参数。还有其他的可选参数,下⾯我们讨论其参数。
为了理解参数,我们再次看图⽰:
start
start 参数数值范围的起始点。如果设置为0,则结果的第⼀个数为0.该参数必须提供。
stop
stop 参数数值范围的终⽌点。通常其为结果的最后⼀个值,但如果修改endpoint = False, 则结果中不包括该值(后⾯⽰例会说明)。
num (可选)
num 参数控制结果中共有多少个元素。如果num=5,则输出数组个数为5.该参数可选,缺省为50.
endpoint (可选)
endpoint 参数决定终⽌值(stop参数指定)是否被包含在结果数组中。如果 endpoint = True, 结果中包括终⽌值,反之不包括。缺省为True。
dtype (可选)
和其他的 NumPy ⼀样, np.linspace中的dtype 参数决定输出数组的数据类型。如果不指定,python基于其他参数值推断数据类型。如果需要可以显⽰指定,参数值为NumPy 和 Python⽀持的任意数据类型。
我们并不需要每次都使⽤所有参数,如果缺省值可以满⾜我们需求。⼀般start, stop, num ⽐ endpoint 和 dtype常⽤。
位置参数 vs 命名参数
实际调⽤时⽆需显⽰指定参数名称,可以通过参数位置直接匹配:
np.linspace(0, 100, 5)
上⾯代码和前⾯⽰例的功能⼀样:np.linspace(start = 0, stop = 100, num = 5) 。
前者使⽤位置匹配,后者使⽤名称匹配。位置匹配让代码简捷,名称匹配使代码更可读,实际应⽤中我们⿎励使⽤名称匹配调⽤函数。3. ⽰例
下⾯通过⽰例学习每个参数含义。
3.1 从0到1,间隔为0.1的数值序列
np.linspace(start = 0, stop = 1, num = 11)
输出结果为:
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9,  1. ])
当你需要百分⽐场景时⽐较有⽤。
3.2 从0 到 100,间隔为10的数值序列
np.linspace(start = 0, stop = 100, num = 11)
输出结果为:
array([  0.,  10.,  20.,  30.,  40.,  50.,  60.,  70.,  80.,  90., 100.])
该⽰例和前⾯⼀样,只是实际应⽤很常⽤。
3.3 使⽤ endpoint 参数
前⽂提到,endpoint 参数决定终⽌值是否被包含在结果数组中。缺省为True,即包括在结果中,反之不包括,请看⽰例:
np.linspace(start = 1, stop = 5, num = 4, endpoint = False)
因为endpoint = False,5不在结果中。结果为1到4。
array([ 1.,  2.,  3.,  4.])
个⼈认为该参数不够直接,平时⼀般不使⽤。
3.4 ⼿动指定数据类型
默认linspace根据其他参数类型推断数据类型,很多时候,输出结果为float类型。如果需要指定数据类型,可以通过dtype设置。该参数很直接,除了linspace其他函数也⼀样,如:np.array,np.arange等。⽰例:
np.linspace(start = 0, stop = 100, num = 5, dtype = int)
这⾥dtype为int,结果为int类型,⽽不是float类型。
4. 总结
本⽂我们通过⽰例学习了linspace函数。如果你熟悉NumPy,⼀定也注意到还有np.arange函数。两者最⼤差异是,linspace能够精确控制终⽌值终值,⽽arange能够更直接地控制序列中值之间的增量。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。