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()