本文共 1396 字,大约阅读时间需要 4 分钟。
NumPy的linspace()函数用于在线性区域中生成等间距的序列。这在数据可视化和科学计算中非常常用。函数定义如下:
numpy.linspace(start, end, num=num_points, endpoint=False, retstep=True, axis=0, dtype=int)
end - start + 1TrueFalse0(行方向)int64最简单的使用方式是生成一个等间距的浮点数序列:
import numpy as npx = np.linspace(0, 5, 6) # 生成6个等间距点print(x) # 输出:[0. 1. 2. 3. 4. 5.]
生成一个从-5到5的等间距序列:
import numpy as npimport matplotlib.pyplot as pltx = np.linspace(-5, 5, 5)y = np.zeros(5)plt.plot(x, y, '*')plt.ylim([-0.5, 0.5])plt.show()
如果不包含终点值,可以通过endpoint=False控制:
x = np.linspace(-5, 5, 5, endpoint=False)print(x) # 输出:[-5. -3. -1. 1. 3.]
如果需要同时获取步长,可以设置retstep=True:
x, step = np.linspace(-5, 5, 5, retstep=True)print(x) # 输出:[array([-5. , -2.5, 0. , 2.5, 5. ]), 2.5]
当处理多维数组时,可以通过axis参数指定生成序列的维度:
x1 = np.array([[1, 2], [3, 4]])x2 = np.array([[5, 6], [7, 8]])# 生成沿第二维的等间距序列s = np.linspace(x1, x2, 3, axis=1)print(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.]]]
linspace()默认会包含end值,除非设置endpoint=False。retstep=True,但需要注意步长的计算方式。axis参数主要用于多维数组的处理,axis=-1则沿最后一维生成序列。通过以上实战演示,可以清晰地理解linspace()函数的使用场景和特点。这是NumPy中非常实用的一个工具,广泛应用于数据生成和可视化中。
转载地址:http://hoafk.baihongyu.com/