NumPy logspace() 函数返回在对数刻度上均匀间隔的数字。这些值是在 [base ** start、base ** stop] 范围内生成的,具有指定数量的样本。可以选择排除间隔的端点。
语法
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
参数
start | 必填。 指定序列的起始值。起始值为base ** start。 |
stop | 必填。 指定序列的结束值(结束值为base ** end),除非endpoint为False。在这种情况下,num + 1 个值在对数空间的间隔内间隔开,其中除了最后一个(长度为 num 的序列)之外的所有值都会返回。 |
num | 可选。 指定要生成的样本数量。默认值为 50。必须为非负数。 |
endpoint | 可选。 指定布尔值。如果为 True,则停止是最后一个样本。否则,不包括在内。默认值为 True。 |
base | 可选。 指定日志空间的基数。 ln(samples) / ln(base) (或 log_base(samples))中元素之间的步长是统一的。默认值为 10.0。 |
dtype | 可选。 指定输出数组的类型。如果未给出 dtype,则从其他输入参数推断数据类型。 |
返回值
返回在对数刻度上均匀间隔的数字。
示例:使用 logspace() 函数创建数组
在下面的示例中,logspace() 函数使用不同的参数来创建数组
import numpy as np
#在给定范围内创建5个样本点
Arr1 = np.logspace(1,2,num=5)
print("Arr1 is:", Arr1)
#当端点=False时,(num+1)个样本是
#生成并返回没有最后一个的样本
Arr2 = np.logspace(1,2,num=5,endpoint=False)
print("Arr2 is:", Arr2)
#使用基础=2.0
Arr3 = np.logspace(1,2,num=5,base=2.0)
print("Arr3 is:", Arr3)
上述代码的输出将是:
Arr1 is: [10. 17.7827941 31.6227766 56.23413252 100. ]
Arr2 is: [10. 15.84893192 25.11886432 39.81071706 63.09573445]
Arr3 is: [2. 2.37841423 2.82842712 3.36358566 4. ]
示例:可视化示例
在下面的示例中,数组是通过将端点参数设置为 True 和 False 创建,并使用 matplolib 库绘制可视化结果。
import numpy as np
import matplotlib.pyplot as plt
#使用endpoint=True创建10个样本点
Arr1 = np.logspace(1,2,num=10,endpoint=True)
#使用端点=True创建10个样本
Arr2 = np.logspace(1,2,num=10,endpoint=False)
y = np.zeros(10)
#绘制 Arr1 和 Arr2
plt.plot(Arr1, y+0.3, 'o')
plt.plot(Arr2, y+0.6, 'o')
plt.ylim([0,1])
plt.legend(labels = ('Arr1', 'Arr2'))
plt.show()
上述代码的输出将是: