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

目录

  • 前言
  • 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.]]]

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年9月8日
下一篇 2023年9月8日

相关推荐