Python numpy.linspace函数方法的使用

numpy.linspace 是 NumPy 库中的一个函数,用于创建指定范围内的等间隔的数字序列。这个函数非常适用于需要生成线性空间点的场景。本文主要介绍一下NumPy中linspace方法的使用。

numpy.linspace

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)[source]

返回指定间隔内的等间隔数字。

返回以间隔[startstop]计算的num个均匀间隔的样本。

间隔的端点可以选择排除。

版本1.16.0中的更改:现在支持非标量的start和stop。

参数 :

start :array_like

序列的起始值。

stop :array_like

序列的最终值,

除非将endpoint设置为False。 

在这种情况下,

该序列包含除num + 1个均匀

间隔的样本外的所有样本,

因此排除了stop。 请注意,

endpointFalse时,

步长会更改。

numint, 可选

要生成的样本数。 默认值为50

必须为非负数。

endpoint :bool, 可选

如果为True,则停止是最后一个样本。

 否则,不包括在内。

 默认值为True

retstepbool, 可选

如果为True,则返回(样本,步进),

其中step是样本之间的间隔。

dtypedtype, 可选

输出数组的类型。 

如果未给出dtype

则从其他输入参数推断数据类型。 

1.9.0版中的新功能。

axisint, 可选

结果中的轴用于存储样本。

 仅当start或stop类似于数组时才相关。

 默认情况下为(0),

样本将沿着在开始处插入的新轴。 

使用-1来获得轴的末端。 

1.16.0版中的新功能。

返回值 :

samples :ndarray

在闭合间隔[start, stop]

或半开间隔[start, stop]

中有num个等距样本

(取决于endpoint是True还是False) 。

stepfloat, 可选

仅在retstepTrue时返回 样本之间的间距大小。

例子

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


推荐阅读
cjavapy编程之路首页