Python NumPy logspace

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()
Python Numpy logspace Example