numpy.linspace
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)[source]
返回指定间隔内的等间隔数字。
返回以间隔[start, stop]计算的num个均匀间隔的样本。
间隔的端点可以选择排除。
版本1.16.0中的更改:现在支持非标量的start和stop。
参数 : | start :array_like 序列的起始值。 stop :array_like 序列的最终值, 除非将endpoint设置为False。 在这种情况下, 该序列包含除 间隔的样本外的所有样本, 因此排除了stop。 请注意, 当endpoint为 步长会更改。 num : 要生成的样本数。 默认值为 必须为非负数。 endpoint :bool, 可选 如果为 否则,不包括在内。 默认值为 retstep : 如果为True,则返回(样本,步进), 其中step是样本之间的间隔。 dtype : 输出数组的类型。 如果未给出 则从其他输入参数推断数据类型。 1.9.0版中的新功能。 axis : 结果中的轴用于存储样本。 仅当start或stop类似于数组时才相关。 默认情况下为( 样本将沿着在开始处插入的新轴。 使用 1.16.0版中的新功能。 |
返回值 : | samples :ndarray 在闭合间隔 或半开间隔 中有num个等距样本 (取决于endpoint是True还是False) 。 step : 仅在 |
例子
1)生成默认的等间隔数列
import numpy as np
# 生成从 0 到 10 的 50 个等间隔的数
arr = np.linspace(0, 10)
print(arr)
2)指定样本数量
import numpy as np
# 生成从 0 到 10 的 5 个等间隔的数
arr = np.linspace(0, 10, num=5)
print(arr)
3)不包含终止值
import numpy as np
# 生成从 0 到 10 的 5 个等间隔的数,但不包含 10
arr = np.linspace(0, 10, num=5, endpoint=False)
print(arr)
4)返回步长
import numpy as np
# 生成从 0 到 10 的 5 个等间隔的数,并返回步长
arr, step = np.linspace(0, 10, num=5, retstep=True)
print("Array:", arr)
print("Step:", step)
5)指定数据类型
import numpy as np
# 生成从 0 到 10 的 5 个等间隔的浮点数
arr = np.linspace(0, 10, num=5, dtype=float)
print(arr)
6)指定生成数组的轴
import numpy as np
# 生成一个 3x5 的数组,每一行是从 0 到 10 的 5 个等间隔的数
arr = np.linspace(0, 10, num=5, axis=1)
print(arr)
7)使用示例
import numpy as np
# 生成从 2.0 到 3.0 的 5 个等间隔的数
arr1 = np.linspace(2.0, 3.0, num=5)
print("Array with endpoint=True:")
print(arr1)
# 生成从 2.0 到 3.0 的 5 个等间隔的数(不包含终止值)
arr2 = np.linspace(2.0, 3.0, num=5, endpoint=False)
print("\nArray with endpoint=False:")
print(arr2)
# 生成从 2.0 到 3.0 的 5 个等间隔的数,并返回步长
arr3, step = np.linspace(2.0, 3.0, num=5, retstep=True)
print("\nArray with step size returned:")
print(arr3)
print("Step size:", step)
图形说明:
import numpy as np
import matplotlib.pyplot as plt
# 定义要生成的点的数量
N = 8
# 创建一个全零数组,用于绘图时的 y 坐标
y = np.zeros(N)
# 生成从 0 到 10 的 N 个等间隔的数,包含终止值
x1 = np.linspace(0, 10, N, endpoint=True)
# 生成从 0 到 10 的 N 个等间隔的数,不包含终止值
x2 = np.linspace(0, 10, N, endpoint=False)
# 绘制第一个数组的点
plt.plot(x1, y, 'o', label='endpoint=True')
# 绘制第二个数组的点,并将其 y 坐标上移 0.5
plt.plot(x2, y + 0.5, 'o', label='endpoint=False')
# 设置 y 轴的显示范围
plt.ylim([-0.5, 1])
# 添加图例
plt.legend()
# 显示图形
plt.show()