geomspace
是 NumPy 库中的一个函数,它用于生成等比数列。这个函数非常有用,特别是在处理具有指数增长或衰减的数据时。下面是对 geomspace
函数的详细介绍:
函数定义
numpy.geomspace(start, stop, num=50, endpoint=True, dtype=None, axis=0)
start
:序列的起始值。stop
:序列的结束值。如果endpoint
为True
,则此值包含在生成的序列中;如果endpoint
为False
,则不包括。num
:要生成的样本数,默认为 50。endpoint
:如果为True
,则stop
是序列的最后一个样本;否则,不包括stop
。默认为True
。dtype
:输出数组的数据类型。如果未给出,则推断数据类型。axis
:如果指定了,则沿着该轴生成样本。
功能描述
geomspace
函数生成一个等比数列,其中相邻元素的比值是常数。这个函数在需要生成指数间隔的序列时非常有用,比如在绘制对数坐标轴、计算复利、或者模拟指数增长/衰减过程时。
例子
例子 1:基本用法
生成从 1 到 1000 的等比数列,共有 10 个元素:
import numpy as np
sequence = np.geomspace(1, 1000, 10)
print(sequence)
结果输出:
[ 1. 2.15443469 4.64158883 10. 21.5443469 46.41588834 100. 215.443469 464.15888336 1000. ]
可以看到,每个元素都是前一个元素的某个固定倍数。
例子 2:不包括结束值
生成从 1 到 100 的等比数列,但不包括结束值 100:
sequence = np.geomspace(1, 100, 10, endpoint=False)
print(sequence)
结果输出:
[ 1. 1.58489319 2.51188643 3.98107171 6.30957344 10. 15.84893192 25.11886432 39.81071706 63.09573445]
注意,在这个例子中,endpoint
参数被设置为 False
,因此结束值 100 不包含在生成的序列中。
例子 3:指定数据类型
生成从 1 到 100 的等比数列,并指定输出数组的数据类型为整数:
sequence = np.geomspace(1, 100, 10, dtype=int)
print(sequence)
结果输出:
[ 1 1 2 4 7 12 21 35 59 100]
对比:
sequence = np.geomspace(1, 100, 10)
print(sequence)
结果输出:[ 1. 1.66810054 2.7825594 4.64158883 7.74263683 12.91549665 21.5443469 35.93813664 59.94842503 100. ]
在这个例子中,由于我们指定了 dtype=int
,所以生成的序列中的元素都是整数。注意,由于取整操作,生成的序列可能不是严格的等比数列。
例子4:
np.geomspace([1000,1000],[1,1],num=4,axis=1)
结果输出:
array([[1000., 100., 10., 1.], [1000., 100., 10., 1.]])