Python的std lib中是否有linspace函数?

mjg*_*py3 6 python matlab

Python linspace在标准库中是否有像matlab这样的函数?

如果没有,是否有一种简单的方法来实现它而无需安装外部包?

这里用matlab术语快速简单地定义linspace.

注意

我不需要链接定义的"矢量结果",列表也可以.

Kat*_*iel 10

不,它没有.你可以编写自己的(并不困难),但如果你使用Python来实现matlab的一些功能,那么你肯定想要安装numpy,它有numpy.linspace.

你可能会发现NumPy为Matlab用户提供了丰富的信息.


Sve*_*ach 9

实现它的最简单方法是生成器函数:

from __future__ import division

def linspace(start, stop, n):
    if n == 1:
        yield stop
        return
    h = (stop - start) / (n - 1)
    for i in range(n):
        yield start + h * i
Run Code Online (Sandbox Code Playgroud)

用法示例:

>>> list(linspace(1, 3, 5))
[1.0, 1.5, 2.0, 2.5, 3.0]
Run Code Online (Sandbox Code Playgroud)

也就是说,你应该考虑使用NumPy,它提供了numpy.linspace()功能和许多其他功能,以方便地使用数值数组.


mka*_*ala 5

您可以定义一个函数来执行此操作:

def linspace(a, b, n=100):
    if n < 2:
        return b
    diff = (float(b) - a)/(n - 1)
    return [diff * i + a  for i in range(n)]
Run Code Online (Sandbox Code Playgroud)