Python numpy logspace 函数在范围内生成对数刻度上均匀间隔的数字。numpy logspace 的语法是
numpy.logspace(start, stop, num = 50, endpoint = True, base = 10.0, dtype=None, axis = 0)
Python numpy logspace 数组函数的参数是
- start – 起始值,即 base ** start
- stop – 结束值,即 base ** stop
- num – 要生成的总样本数。
- endpoint – 如果设置为 True,则包含最后一个样本;否则不包含。
- base – 提供对数空间的基数值。
- dtype – 输出数组的数据类型。
- axis – 如果 start 和 stop 值是数组,则很有帮助。
Python numpy logspace
这是一个具有 start 和 stop 参数的简单示例。
import numpy as np a = np.logspace(1, 2) print(a)
[ 10. 10.48113134 10.98541142 11.51395399 12.06792641
12.64855217 13.25711366 13.89495494 14.56348478 15.26417967
15.9985872 16.76832937 17.57510625 18.42069969 19.30697729
20.23589648 21.20950888 22.22996483 23.29951811 24.42053095
25.59547923 26.82695795 28.11768698 29.47051703 30.88843596
32.37457543 33.93221772 35.56480306 37.2759372 39.06939937
40.94915062 42.9193426 44.98432669 47.14866363 49.41713361
51.79474679 54.28675439 56.89866029 59.63623317 62.50551925
65.51285569 68.6648845 71.9685673 75.43120063 79.06043211
82.86427729 86.85113738 91.0298178 95.40954763 100. ]
示例 2
np.logspace(1, 3, num = 5) 将从 1 开始生成 5 个样本,并以 3 结束。所以,第一个值将是 base ** 1,并且基值默认是 10。所以,第一个是 10 ** 1,最后一个是 10 ** 3
b = (1.0, 5.0, num = 5, base = 2)。起始值为 2 ** 1,结束值为 2 ** 5
在第三行,我们使用了 endpoint = False,这样 stop 值将小于 5。在第四行,dtype = int 会将结果转换为整数。
import numpy as np a = np.logspace(1, 3, num = 5) print(a) b = np.logspace(1.0, 5.0, num = 5, base = 2) print(b) c = np.logspace(1.0, 5.0, num = 5, endpoint = False, base = 2) print(c) d = np.logspace(1.0, 5.0, num = 5, base = 2, dtype = int) print(d)
[ 10. 31.6227766 100. 316.22776602 1000. ]
[ 2. 4. 8. 16. 32.]
[ 2. 3.48220225 6.06286627 10.55606329 18.37917368]
[ 2 4 8 16 32]
Python numpy 数组 logspace 函数
在此示例中,我们将数组用作 start 和 stop 值。
np.logspace(start = [1, 5], stop = [5, 10], num = 6, base = 2) 将垂直生成 6 个数字。第一列的值从 1 开始到 5 结束,第二列的值从 5 到 10。
在最后一行,我们将 axis 设置为 1。它将水平生成 7 个均匀间隔的对数刻度数字,其中第一行从 1 开始,到 5 结束,第二行从 5 到 10。
import numpy as np a = np.logspace(start = [1, 5], stop = [5, 10], num = 6, base = 2) print(a) b = np.logspace(start = [1, 5], stop = [5, 10], num = 6, base = 2, dtype = int) print(b) c = np.logspace(start = [1, 5], stop = [5, 10], num = 7, base = 2, dtype = int, axis = 1) print(c)
[[ 2. 32. ]
[ 3.48220225 64. ]
[ 6.06286627 128. ]
[ 10.55606329 256. ]
[ 18.37917368 512. ]
[ 32. 1024. ]]
[[ 2 32]
[ 3 64]
[ 6 128]
[ 10 256]
[ 18 512]
[ 32 1024]]
[[ 2 3 5 8 12 20 32]
[ 32 57 101 181 322 574 1024]]
在此 示例 中,我们将使用 numpy logspace 函数生成的值来创建一个 折线图。
import numpy as np import matplotlib.pyplot as plt a = np.linspace(1, 5) b = np.logspace(1, 5, base = 2) print(b) plt.plot(a, b) plt.show()
