菜鸟笔记-Python函数-logspace

numpy.logspace 是 Python 的 NumPy 库中的一个函数,用于生成等比数列(即每个数与前一个数的比值都相等,其中每个元素都是前一个元素的固定倍数。)。在大多数情况下,等比数列用于表示在对数尺度上均匀分布的数据,这在处理一些科学或工程问题时非常有用。

函数的基本语法如下:

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

【=base**linspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None, axis=0)】

参数解释:

  • start:序列的起始值(以 base 为底的对数)。
  • stop:序列的结束值(以 base 为底的对数)。
  • num:要生成的样本数,默认为 50。
  • endpoint:如果为 True,stop 是最后一个样本。否则,不包括 stop。默认为 True。
  • base:对数的底数,默认为 10。
  • dtype:输出数组的类型。如果未给出,则从其他输入参数推断数据类型。
  • axis:在返回的数组中,样本沿着哪个轴放置。0 表示第一个轴(行),1 表示第二个轴(列)。默认为 0。

下面是一个简单的例子:

复制代码
import numpy as np  
  
# 生成从 10^0 到 10^2(即 1 到 100)的等比数列,共有 10 个数  
arr = np.logspace(0, 2, 10)  
print(arr)

结果输出:

1. 1.66810054 2.7825594 4.64158883 7.74263683 12.91549665 21.5443469 35.93813664 59.94842503 100.

例1:

复制代码
np.logspace(0,100,10) 

结果输出:

复制代码
array([1.00000000e+000, 1.29154967e+011, 1.66810054e+022, 2.15443469e+033,
       2.78255940e+044, 3.59381366e+055, 4.64158883e+066, 5.99484250e+077,
       7.74263683e+088, 1.00000000e+100])

np.logspace(0,100,10)=10**np.linspace(0,100,10)

例2:

复制代码
np.logspace(1,6,5,base=2)

结果输出:

复制代码
array([ 2.        ,  4.75682846, 11.3137085 , 26.90868529, 64.        ])

解:

np.logspace(1,6,5,base=2)=base(2)**linspace(1,6,5)=2**[1,2.25,3.5,4.75,6]=[ 2. , 4.75682846, 11.3137085 , 26.90868529, 64. ]

例3:

复制代码
np.logspace(1,6,5,base=np.e)

结果输出:

复制代码
array([  2.71828183,   9.48773584,  33.11545196, 115.58428453,
       403.42879349])

解:

np.logspace(1,6,5,base=np.e)=base(e)**linspace(1,6,5)=e**[1,2.25,3.5,4.75,6]=[ 2.71828183, 9.48773584, 33.11545196, 115.58428453, 403.42879349]

例4:

复制代码
np.logspace([0,1,2,3],[3,2,1,0],num=5)
复制代码
结果输出:
array([[   1.        ,   10.        ,  100.        , 1000.        ],
       [   5.62341325,   17.7827941 ,   56.23413252,  177.827941  ],
       [  31.6227766 ,   31.6227766 ,   31.6227766 ,   31.6227766 ],
       [ 177.827941  ,   56.23413252,   17.7827941 ,    5.62341325],
       [1000.        ,  100.        ,   10.        ,    1.        ]])

解:

该题base为默认值10,即np.logspace([0,1,2,3],[3,2,1,0],num=5)=10**np.linspace([0,1,2,3],[3,2,1,0],num=5)=10**([0,1,2,3],[0.75,1.25,1.75,2.25],[1.5,1.5,1.5,1.5],[2.25,1.75,1.25,0.75],[3,2,1,0])=

复制代码
[[   1.        ,   10.        ,  100.        , 1000.        ],
       [   5.62341325,   17.7827941 ,   56.23413252,  177.827941  ],
       [  31.6227766 ,   31.6227766 ,   31.6227766 ,   31.6227766 ],
       [ 177.827941  ,   56.23413252,   17.7827941 ,    5.62341325],
       [1000.        ,  100.        ,   10.        ,    1.        ]]
相关推荐
半梅芒果干13 小时前
vue3 新建文件store自动导入
开发语言·前端·javascript
Tony Bai13 小时前
Go 1.26 新特性前瞻:从 Green Tea GC 到语法糖 new(expr),性能与体验的双重进化
开发语言·后端·golang
我一定会有钱13 小时前
pytest基础
python·测试工具·测试用例·pytest
悟能不能悟13 小时前
Java 中将 List 中对象的某一列转换为 Set
java·开发语言·list
vortex513 小时前
Bash Shell 的展开与补全机制
开发语言·bash
北岛寒沫13 小时前
北京大学国家发展研究院 经济学辅修 经济学原理课程笔记(第八课 外部性)
经验分享·笔记
Hi~晴天大圣13 小时前
if 变量和if not 变量用法之布尔真假值规则
python·if
老歌老听老掉牙13 小时前
Vericut 5轴机床MCH文件解析与构建指南
xml·python·vericut
010米粉01013 小时前
Qt Cmake之路(一):Cmake变量语法
开发语言·qt·cmake
aini_lovee13 小时前
基于Jousselme距离改进D-S证据理论matlab实现
开发语言·算法·matlab