27

我一直用np.arange. 我最近遇到了np.linspace。我想知道它们之间到底有什么区别......查看他们的文档:

np.arange

在给定的间隔内返回均匀间隔的值。

np.linspace

在指定的时间间隔内返回均匀分布的数字。

我能看到的唯一区别是linspace有更多选择......就像选择包含最后一个元素一样。

你会推荐这两个中的哪一个,为什么?在哪些情况下np.linspace更胜一筹?

4

1 回答 1

49

np.linspace允许您定义您获得多少个值,包括指定的最小值和最大值。它推断步长:

>>> np.linspace(0,1,11)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])

np.arange允许您定义步长并推断步数(您获得的值的数量)。

>>> np.arange(0,1,.1)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])

来自user2357112的贡献:

np.arange排除最大值,除非舍入误差使其不这样做。

例如,由于舍入误差,会出现以下结果:

>>> numpy.arange(1, 1.3, 0.1)
array([1. , 1.1, 1.2, 1.3])

您可以使用以下命令排除该stop值(在我们的示例中为 1.3)endpoint=False

>>> numpy.linspace(1, 1.3, 3, endpoint=False)
array([1. , 1.1, 1.2])
于 2020-05-30T17:18:50.420 回答