介绍
在本教程中,我们将介绍 NumPy 库中 numpy.linspace() 函数的使用。该函数用于在指定区间内生成均匀分布的数字。它与 numpy.arange() 函数类似,唯一的区别在于它不是通过步长来指定间隔,而是通过 num 参数来指定区间内均匀分布的数字数量。
虚拟机使用提示
虚拟机启动完成后,点击左上角切换到 Notebook 标签页,以访问 Jupyter Notebook 进行练习。
有时,你可能需要等待几秒钟,直到 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。
如果你在学习过程中遇到问题,随时可以向 Labby 提问。课程结束后请提供反馈,我们将及时为你解决问题。
理解语法
numpy.linspace() 函数的语法如下:
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
该函数接受以下参数:
- start: 区间的起始值。
- stop: 区间的结束值。
- num: 在区间内生成的均匀分布样本的数量。默认值为 50。
- endpoint: 一个布尔值,指示是否包含区间的端点。如果为 True,则包含端点;如果为 False,则不包含端点。默认值为 True。
- retstep: 一个布尔值,指示是否返回步长值,即连续数字之间的间距。默认值为 False。
- dtype: 数组项的数据类型。
使用 linspace() 生成数组
要使用 numpy.linspace() 生成数组,你只需要传入起始值、结束值以及你想要的样本数量。以下是一个示例:
import numpy as np
a = np.linspace(0, 10, num=11)
print(a)
这段代码的输出将是:
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
排除端点
要排除端点,我们只需将 endpoint 参数设置为 False。以下是一个示例:
b = np.linspace(0, 10, num=10, endpoint=False)
print(b)
这段代码的输出将是:
[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
返回步长值
要返回 linspace() 生成的连续数字之间的步长或间距值,可以将 retstep 参数设置为 True。以下是一个示例:
c, step = np.linspace(0, 10, num=11, retstep=True)
print(c)
print(step)
这段代码的输出将是:
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
1.0
使用 Linspace() 进行绘图
我们可以将 linspace() 与 matplotlib 结合使用来绘制图形。以下是一个示例:
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
这段代码的输出是一个简单的正弦波图形。
使用非标量值
从较新版本的 NumPy 开始,linspace() 支持非标量值作为起始和结束参数。以下是一个示例:
start = np.array([0, 1, 2])
end = np.array([6, 7, 8])
d = np.linspace(start, end, num=5, axis=1)
print(d)
这段代码的输出是:
[[0. 1.5 3. 4.5 6. ]
[1. 2.5 4. 5.5 7. ]
[2. 3.5 5. 6.5 8. ]]
总结
在本教程中,我们演示了 NumPy 库中 numpy.linspace() 函数的使用。我们介绍了语法、各种参数以及多个示例。通过掌握这些知识,你现在可以快速高效地生成均匀分布的数组。