赞
踩
用plt画图的时候,偶尔会看到这个函数的出现,索性直接深入源码实战进行复现
主要功能:在线性区域中生成等间距的序列,原先在Numpy中可以用numpy.arange()
,但对于浮点数会有精度丢失,因此 linspace()
对于浮点数比较友好。适当的参数,两者都可选择。
具体源码:numpy.linspace(start, end, num=num_points,endpoint=False,retstep=True,axis=0,dtype=int)
参数讲解:
该函数最基本的使用如下:
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.]]]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。