[转载] numpy.logspace和numpy.linspace区别对比

参考链接: Python中的numpy.linspace

numpy.logspace: 

返回在对数刻度上均匀间隔的数字;即可以通过np.logspace方法创建等比数列数组。 

具体用法: 

np.logspace(start, stop, num=num, endpoint=endpoint, base=base, dtype=dtype)

简单代码示例: 

>>>np.logspace(2.0, 3.0, num=4)  

array([  100.        ,   215.443469  ,   464.15888336,  1000.        ])

#代码释义:默认以 10 为底数,生成4(num)个从2.0到3.0之间的次方数数组

>>>np.logspace(2.0, 3.0, num=4, endpoint=False)

array([ 100.        ,  177.827941  ,  316.22776602,  562.34132519])

#代码释义:endpoint=False 表示不计算以 3.0 为次方数的值

>>>np.logspace(2.0, 3.0, num=4, base=2.0)

array([ 4.        ,  5.0396842 ,  6.34960421,  8.        ])

#代码释义:base=2.0 表示以2.0位底数计算

画个简单图形示例: 

代码: 

>>> 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()

运行结果: 

numpy.linspace: 

返回间隔为[start, stop]的等间距样本;即可以通过numpy.linspace方法创建等差数列数组。 

具体方法: 

np.linspace(start, stop, num, endpoint, retstep, dtype)

代码示例: 

>>>np.linspace(2.0, 3.0, num=5)

array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ])

#代码释义:创建从 2.0 到 3.0 之间的等分的 5 个数的数组。

>>> np.linspace(2.0, 3.0, num=5, endpoint=False)

array([ 2. ,  2.2,  2.4,  2.6,  2.8])

#代码释义:endpoint=False 表示结尾 3.0 数字不包含在内。

>>> np.linspace(2.0, 3.0, num=5, retstep=True)

(array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ]), 0.25)

#代码释义:retstep=True 表示展示最后的 步长 结果。

画图示例: 

代码部分: 

>>> import matplotlib.pyplot as plt

>>> N = 8

>>> y = np.zeros(N)

>>> x1 = np.linspace(0, 10, N, endpoint=True)

>>> x2 = np.linspace(0, 10, N, endpoint=False)

>>> 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()

以上就是np.logspace和np.linspace的详细介绍了!

猜你喜欢

转载自blog.csdn.net/u013946150/article/details/113057652