numpy.logspace#

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)[源代码]#

返回在对数刻度上均匀间隔的数字.

在线性空间中,序列从 base ** start 开始(basestart 次方),并以 base ** stop 结束(见下面的 endpoint).

在 1.16.0 版本发生变更: 现在支持非标量的 startstop.

在 1.25.0 版本发生变更: 非标量 ‘base` 现在已支持

参数:
startarray_like

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

stoparray_like

base ** stop 是序列的最终值,除非 endpoint 为 False.在这种情况下,``num + 1`` 个值在对数空间中分布在区间上,其中除了最后一个(长度为 num 的序列)之外的所有值都被返回.

num整数,可选

要生成的样本数量.默认是 50.

endpoint布尔值, 可选

如果为真,`stop` 是最后一个样本.否则,不包括在内.默认值为 True.

basearray_like, 可选

对数空间的基数.在 ln(samples) / ln(base) (或 log_base(samples)) 中元素之间的步长是均匀的.默认值是 10.0.

dtypedtype

输出数组的类型.如果未指定 dtype,则数据类型从 startstop 推断.推断的类型永远不会是整数;即使参数会产生整数数组,也会选择 float.

axisint, 可选

结果中存储样本的轴.仅在 start、stop 或 base 是类数组时相关.默认情况下(0),样本将沿一个新的轴插入到开头.使用 -1 以在末尾获取一个轴.

在 1.16.0 版本加入.

返回:
samplesndarray

num 样本,在对数尺度上等间隔分布.

参见

arange

类似于 linspace,但指定了步长而不是样本数量.注意,当与浮点数端点一起使用时,端点可能会也可能不会被包含.

linspace

类似于 logspace,但样本均匀分布在线性空间中,而不是对数空间中.

geomspace

类似于 logspace,但端点是直接指定的.

如何分区

备注

如果 base 是一个标量,logspace 等价于以下代码

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

示例

>>> import numpy as np
>>> 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.        ])
>>> np.logspace(2.0, 3.0, num=4, base=[2.0, 3.0], axis=-1)
array([[ 4.        ,  5.0396842 ,  6.34960421,  8.        ],
       [ 9.        , 12.98024613, 18.72075441, 27.        ]])

图形说明:

>>> 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()
../../_images/numpy-logspace-1.png