上一主题

numpy.linspace

numpy.logspace

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)[source]

返回以对数刻度均匀分布的数字。

In linear space, the sequence starts at base ** start (base to the power of start) and ends with base ** stop (see endpoint below).

参数:

start:float

base ** start是序列的起始值。

停止:float

基本 ** 停止是序列的最终值,除非endpoint假。在这种情况下,num + 1值在对数空间中间隔,最后一个(长度num的序列)被返回。

num:integer,可选

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

endpoint:boolean,可选

如果为true,则停止是最后一个样本。否则,不包括在内。默认值为True。

base:float,可选

日志空间的基础。ln(samples) / ln(base)(或log_base(samples))是均匀的。默认值为10.0。

dtype:dtype

输出数组的类型。如果未给出dtype,则从其他输入参数推断数据类型。

返回:

samples:ndarray

num个样本,以对数标度等间隔。

也可以看看

arange
类似于linspace,指定步长而不是样本数。注意,当与浮点端点一起使用时,可以包括或可以不包括端点。
linspace
类似于logspace,但是样本均匀分布在线性空间中,而不是日志空间。

笔记

Logspace等价于代码

>>> y = np.linspace(start, stop, num=num, endpoint=endpoint)
... 
>>> power(base, y).astype(dtype)
... 

例子

>>> np.logspace(2.0, 3.0, num=4)
    array([  100.        ,   215.443469  ,   464.15888336,  1000.        ])
>>> np.logspace(2.0, 3.0, num=4, endpoint=False)
    array([ 100.        ,  177.827941  ,  316.22776602,  562.34132519])
>>> np.logspace(2.0, 3.0, num=4, base=2.0)
    array([ 4.        ,  5.0396842 ,  6.34960421,  8.        ])

图形图:

>>> import matplotlib.pyplot as plt
>>> N = 10
>>> x1 = np.logspace(0.1, 1, N, endpoint=True)
>>> x2 = np.logspace(0.1, 1, N, endpoint=False)
>>> y = np.zeros(N)
>>> plt.plot(x1, y, 'o')
[<matplotlib.lines.Line2D object at 0x...>]
>>> plt.plot(x2, y + 0.5, 'o')
[<matplotlib.lines.Line2D object at 0x...>]
>>> plt.ylim([-0.5, 1])
(-0.5, 1)
>>> plt.show()

源代码pngpdf

../../_images/numpy-logspace-1.png