Python numpy.logspace函数方法的使用

NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中logspace方法的使用。

numpy.logspace

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)[source]

在对数尺度上返回间隔均匀的数字。

在线性空间中,序列从base ** start(以start的幂为基础)开始,并以base ** stop结束(请参见下面的endpoint)。

Changed in version 1.16.0: Non-scalar start and stop are now supported.

参数 :

start :array_like

base ** start是序列的起始值。

stop :array_like

base ** stop是序列的最终值,

除非endpoint 为False。

 在这种情况下,

num + 1值在对数空间的间隔内间隔开,

返回除最后一个

(长度为num的序列)外的所有值。

numinteger, 可选

要生成的样本数。 默认值为50

endpointboolean, 可选

如果为true,则停止是最后一个样本。 

否则,不包括在内。 默认值为True

basefloat, 可选

日志空间的基础。

ln(samples)/ ln(base)

(或log_base(samples)

中元素之间的步长是一致的。 

默认值为10.0

dtypedtype

输出数组的类型。 如果未给出dtype

则从其他输入参数推断数据类型。

axisint, 可选

结果中的轴用于存储样本。

 仅当start

stop类似于数组时才相关。 

默认情况下为(0)

样本将沿着在开始处插入的新轴。

 使用-1来获得轴的末端。

 1.16.0版中的新功能。

返回值 :

samplesndarray

num个样本,以对数刻度等距分布。

Notes

Logspace等效于代码

import numpy as np

# 定义参数
start = 1.0
stop = 10.0
num = 10
endpoint = True
base = 2
dtype = int

# 生成从 start 到 stop 的等间隔数列
y = np.linspace(start, stop, num=num, endpoint=endpoint)
print("Linspace array:")
print(y)

# 计算 base 的 y 次幂,并将结果转换为指定的数据类型
result = np.power(base, y).astype(dtype)
print("\nPower array with specified dtype:")
print(result)

例子

1)生成从 10210^2102 到 10310^3103 的 5 个等间隔的数

import numpy as np

arr = np.logspace(2.0, 3.0, num=5)
print(arr)

2)不包含终止值

import numpy as np

arr = np.logspace(2.0, 3.0, num=5, endpoint=False)
print(arr)

3)使用不同的底数

import numpy as np

arr = np.logspace(2.0, 3.0, num=5, base=2)
print(arr)

4)指定数据类型

import numpy as np

arr = np.logspace(2.0, 3.0, num=5, dtype=int)
print(arr)

5)使用示例

import numpy as np

# 生成从 10^2 到 10^3 的 4 个等间隔的数
arr1 = np.logspace(2.0, 3.0, num=4)
print("Logspace with endpoint=True:")
print(arr1)

# 生成从 10^2 到 10^3 的 4 个等间隔的数(不包含终止值)
arr2 = np.logspace(2.0, 3.0, num=4, endpoint=False)
print("\nLogspace with endpoint=False:")
print(arr2)

# 生成从 2^2 到 2^3 的 4 个等间隔的数,底数为 2
arr3 = np.logspace(2.0, 3.0, num=4, base=2.0)
print("\nLogspace with base=2.0:")
print(arr3)

图形说明:

import numpy as np
import matplotlib.pyplot as plt

# 定义点的数量
N = 10
# 生成从 10^0.1 到 10^1 的 N 个等间隔的数,包含终止值
x1 = np.logspace(0.1, 1, N, endpoint=True)
# 生成从 10^0.1 到 10^1 的 N 个等间隔的数,不包含终止值
x2 = np.logspace(0.1, 1, N, endpoint=False)

# 创建一个全零的数组,用于 y 坐标
y = np.zeros(N)
# 绘制第一个数列的点
plt.plot(x1, y, 'o', label='endpoint=True')
# 绘制第二个数列的点,并将 y 坐标上移 0.5
plt.plot(x2, y + 0.5, 'o', label='endpoint=False')
# 设置 y 轴的显示范围
plt.ylim([-0.5, 1])
# 添加图例
plt.legend()

# 显示图形
plt.show()


推荐阅读
cjavapy编程之路首页