python numpy 中linspace函数示例详解

 更新时间:2023年12月22日 11:06:52   作者:码农研究僧  
这篇文章主要介绍了python numpy 中linspace函数,本文我们通过示例学习了linspace函数,如果你熟悉NumPy,一定也注意到还有np.arange函数,两者最大差异是,linspace能够精确控制终止值终值,而arange能够更直接地控制序列中值之间的增量,需要的朋友可以参考下

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)

代码生成 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能够更直接地控制序列中值之间的增量。

Python Numpy 关于 linspace()函数 使用详解(全)

前言

用plt画图的时候,偶尔会看到这个函数的出现,索性直接深入源码实战进行复现

主要功能:在线性区域中生成等间距的序列,原先在Numpy中可以用numpy.arange(),但对于浮点数会有精度丢失,因此 linspace()对于浮点数比较友好。适当的参数,两者都可选择。

1. 函数讲解

具体源码:numpy.linspace(start, end, num=num_points,endpoint=False,retstep=True,axis=0,dtype=int)

参数讲解:

  • 对应的序列在【start,end】,共有num_points个元素
  • endpoint默认为True。如果设置为False,对应的序列在【start,end),通俗的说不包括最后一个元素,同样共有num_points个元素
  • retstep默认为False。如果设置为True,则返回的序列结果为一个元组,对应的序列在【start,end】
  • axis设置轴来存储,只可数组类型才可编译。默认为0,在开始处插入新轴。为-1,为序列末尾轴。
  • dtype默认类型为int,很多时候输出为float类型。

2. 实战讲解

该函数最基本的使用如下:

import numpy as np
import matplotlib.pyplot as plt
x1 = np.linspace(-5, 5, 5)
# 让y直接为0
y = np.zeros(5)
# 画图,具体用*号表示
plt.plot(x1, y, '*')
# 设置当前轴的y限制
plt.ylim([-0.5, 0.5])
plt.show()
# 输出 [-5.  -2.5  0.   2.5  5. ]
print(x1)
# 输出的长度为 5 
print(len(x1))

截图如下:

在这里插入图片描述

如果设置endpoint参数,对应不保存最后一个关键字,具体代码如下:

import numpy as np
import matplotlib.pyplot as plt
x1 = np.linspace(-5, 5, 5,endpoint=False)
y = np.zeros(5)
plt.plot(x1, y, '*')
plt.ylim([-0.5, 0.5])
plt.show()
## 注意其中的区别 ## 
# 输出 [-5. -3. -1.  1.  3.]
print(x1)
# 输出的长度为 5 
print(len(x1))

截图如下:

在这里插入图片描述

如果设置retstep参数,对应输出的结果为元组类型
(注意其中的代码区别)

import numpy as np
import matplotlib.pyplot as plt
x1 = np.linspace(-5, 5, 5,retstep=True)
y = np.zeros(5)
# 代码无法使用,因为是元组类型,无法画图 
# plt.plot(x1, y, '*')
# plt.ylim([-0.5, 0.5])
# plt.show()
# ## 注意其中的区别 ## 
# 输出(array([-5. , -2.5,  0. ,  2.5,  5. ]), 2.5)
print(x1)
# 输出的长度为 2
print(len(x1))

如果设置axis参数,对应的代码区别如下:

import numpy as np
import matplotlib.pyplot as plt
x1 = np.array([[1, 2], [3, 4]])
x2 = np.array([[5, 6], [7, 8]])
s = np.linspace(x1,x2,3, axis=1)
print(s)
# 输出的长度为 2
print(len(s))

axis=1输出结果为:

[[[1. 2.]
[3. 4.]
[5. 6.]]

[[3. 4.]
[5. 6.]
[7. 8.]]]

axis=0输出结果为:

[[[1. 2.]
[3. 4.]]

[[3. 4.]
[5. 6.]]

[[5. 6.]
[7. 8.]]]

到此这篇关于python numpy 中linspace函数的文章就介绍到这了,更多相关python linspace函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pandas将列表(List)转换为数据框(Dataframe)

    Pandas将列表(List)转换为数据框(Dataframe)

    这篇文章主要介绍了Pandas将列表(List)转换为数据框(Dataframe),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • PYQT5 实现界面的嵌套方式

    PYQT5 实现界面的嵌套方式

    这篇文章主要介绍了PYQT5 实现界面的嵌套方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 一道题学会Python函数中形参和实参

    一道题学会Python函数中形参和实参

    在Python编程中,函数的形参和实参是函数定义和调用的重要概念,本文主要介绍了一道题学会Python函数中形参和实参,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • python 3.6 tkinter+urllib+json实现火车车次信息查询功能

    python 3.6 tkinter+urllib+json实现火车车次信息查询功能

    这篇文章主要介绍了python 3.6 tkinter+urllib+json 火车车次信息查询功能,本文以查询火车车次至南京的信息为例,需要的朋友可以参考下
    2017-12-12
  • Python详解文字转语音的实现

    Python详解文字转语音的实现

    在自然语言处理上,文字、音频互转是一个很关键的技术点。对于语音转文字,个人实现较为困难,我们可以使用语音转文字的软件或借助各API(如科大讯飞等)进行移植开发。不过文字转语音就相对而言容易实现很多了
    2022-02-02
  • python中matplotlib的用法及绘制简单图形详解

    python中matplotlib的用法及绘制简单图形详解

    这篇文章主要给大家介绍了关于python中matplotlib的用法及绘制简单图形的相关资料,matplotlib是python中用于绘制各种图像的模块,功能十分强大,通常与pandas模块搭配使用,可以生成各种样视的图片,用于数据的分析和展示,需要的朋友可以参考下
    2024-03-03
  • Python中Turtle库改变画笔(海龟)方向的两种方法总结

    Python中Turtle库改变画笔(海龟)方向的两种方法总结

    turtle库是python标准库之一,入门级绘图库,import turtle之后即可使用,下面这篇文章主要给大家介绍了关于Python中Turtle库改变画笔(海龟)方向的两种方法,需要的朋友可以参考下
    2022-11-11
  • Python脚本获取操作系统版本信息

    Python脚本获取操作系统版本信息

    本文给大家分享的小技巧是如何利用Python脚本获取Windows和Linux的系统版本信息,非常的简单实用,有需要的小伙伴可以查看下
    2016-12-12
  • Python自动化实现抖音自动刷视频

    Python自动化实现抖音自动刷视频

    本文主要介绍了Python自动化实现抖音自动刷视频,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • mac安装python3后使用pip和pip3的区别说明

    mac安装python3后使用pip和pip3的区别说明

    这篇文章主要介绍了mac安装python3后使用pip和pip3的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09

最新评论