前言
用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输出结果为:文章来源:https://www.toymoban.com/news/detail-752898.html
[[[1. 2.]
[3. 4.]]
[[3. 4.]
[5. 6.]]
[[5. 6.]
[7. 8.]]]文章来源地址https://www.toymoban.com/news/detail-752898.html
到了这里,关于Python Numpy 关于 linspace()函数 使用详解(全)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!