目录

前言1. 函数讲解2. 实战讲解

前言

用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.]]]

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: