numpy.logspace#
- numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)[源代码]#
在对数尺度上返回均匀间隔的数字。
在线性空间中,序列从
base ** start(base 的 start 次幂) 开始,到base ** stop结束 (参见下面的 endpoint)。版本 1.25.0 中更改: 现在支持非标量 ‘base`。
- 参数:
- startarray_like
base ** start是序列的起始值。- stoparray_like
base ** stop是序列的最终值,除非 endpoint 为 False。在这种情况下,会在对数空间中以num + 1个值间隔该区间,并返回除最后一个值之外的所有值 (长度为 num 的序列)。- num整数,可选
要生成的样本数。默认为 50。
- endpoint布尔值,可选
如果为 True,则 stop 是最后一个样本。否则,它不被包含。默认为 True。
- base类数组,可选
对数空间的基数。
ln(samples) / ln(base)(或log_base(samples)) 中元素之间的步长是均匀的。默认为 10.0。- dtypedtype
输出数组的数据类型。如果未给出
dtype,则数据类型将根据 start 和 stop 推断。推断出的类型永远不会是整数;即使参数会产生整数数组,也会选择 float。- axisint, optional
结果中用于存储样本的轴。仅当 start、stop 或 base 为类数组时才相关。默认情况下 (0),样本将沿着插入到开头的新的轴。使用 -1 在末尾获取一个轴。
- 返回:
- samplesndarray
num 个样本,在对数尺度上等距分布。
另请参阅
arange类似于 linspace,但指定了步长而不是样本数。请注意,当与浮点 endpoint 一起使用时,endpoint 可能包含也可能不包含。
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()