numpy.logspace用法

本文介绍了如何使用np.logspace创建等比数列,并通过实例展示了如何指定开始和结束指数及元素数量,还解释了如何更改底数。

现在介绍logspac用于创建等比数列。其实用法差不多,但是有一个特殊的地方需要注意。

● 先来看一个例子,我们让开始点为0,结束点为0,元素个数为10,看看输出结果。为什么是这样子?难道不都是0吗?

>>> a = np.logspace(0,0,10)
>>> a
array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.])

● 因为logspace中,开始点和结束点是10的幂,0代表10的0次方,9代表10的9次方。我们看下面的例子。

>>> a = np.logspace(0,9,10)
>>> a
array([  1.00000000e+00,   1.00000000e+01,   1.00000000e+02,
         1.00000000e+03,   1.00000000e+04,   1.00000000e+05,
         1.00000000e+06,   1.00000000e+07,   1.00000000e+08,
         1.00000000e+09])
>>> a = np.logspace(0,9,10)
>>> a
array([  1.00000000e+00,   1.00000000e+01,   1.00000000e+02,
         1.00000000e+03,   1.00000000e+04,   1.00000000e+05,
         1.00000000e+06,   1.00000000e+07,   1.00000000e+08,
         1.00000000e+09])

● 假如,我们想要改变基数,不让它以10为底数,我们可以改变base参数,将其设置为2试试。

>>> a = np.logspace(0,9,10,base=2)
>>> a
array([   1.,    2.,    4.,    8.,   16.,   32.,   64.,  128.,  256.,  512.])

转载博客:
http://blog.youkuaiyun.com/shenpengjianke/article/details/29356755

### numpy.linspace 与 numpy.logspace 的区别及用法比较 #### 1. **功能定义** `numpy.linspace` 和 `numpy.logspace` 都是用于生成数值序列的函数,但它们生成的序列类型不同。`numpy.linspace` 生成的是等差数列,而 `numpy.logspace` 生成的是等比数列。 - `numpy.linspace` 通过指定起始值、终止值和样本数量来生成线性间隔的数组[^1]。 - `numpy.logspace` 则根据对数尺度生成等比数列,其起始值和终止值实际上是指数形式,即 `base ** start` 和 `base ** stop`[^3]。 #### 2. **参数对比** | 参数 | `numpy.linspace` | `numpy.logspace` | |------------|---------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------| | `start` | 序列的起始值 | 起始值为 `base ** start` | | `stop` | 序列的终止值 | 终止值为 `base ** stop` | | `num` | 指定生成的样本数量,默认为 50 | 指定生成的样本数量,默认为 50 | | `endpoint` | 如果为 `True`,则包含 `stop` 值;如果为 `False`,则不包含 `stop` 值 | 如果为 `True`,则包含 `base ** stop` 值;如果为 `False`,则不包含 `base ** stop` 值 | | `base` | - | 对数的底数,默认为 10 | | `dtype` | 指定返回数组的数据类型 | 指定返回数组的数据类型 | #### 3. **代码示例** ##### 使用 `numpy.linspace` ```python import numpy as np # 创建从 1 到 10 的等差数列,共 10 个点 arr = np.linspace(1, 10, 10) print("np.linspace 示例:", arr) # 不包含结束点 arr_no_endpoint = np.linspace(1, 10, 10, endpoint=False) print("np.linspace (不包含结束点):", arr_no_endpoint) # 返回步长 arr_with_step = np.linspace(1, 10, 10, retstep=True) print("np.linspace (返回步长):", arr_with_step) ``` ##### 使用 `numpy.logspace` ```python # 创建从 10^1 到 10^3 的等比数列,共 5 个点 arr_log = np.logspace(1, 3, 5) print("np.logspace 示例:", arr_log) # 使用不同的底数 arr_log_base_2 = np.logspace(1, 3, 5, base=2.0) print("np.logspace (底数为 2):", arr_log_base_2) # 不包含结束点 arr_log_no_endpoint = np.logspace(1, 3, 5, endpoint=False) print("np.logspace (不包含结束点):", arr_log_no_endpoint) ``` #### 4. **关键区别总结** - **生成方式**: - `numpy.linspace` 是基于线性间隔生成等差数列。 - `numpy.logspace` 是基于对数间隔生成等比数列。 - **起始值与终止值**: - 在 `numpy.linspace` 中,`start` 和 `stop` 是直接的数值。 - 在 `numpy.logspace` 中,`start` 和 `stop` 是指数形式,实际值为 `base ** start` 和 `base ** stop`[^3]。 - **应用场景**: - `numpy.linspace` 适用于需要在线性尺度上均匀分布数据的情况。 - `numpy.logspace` 更适合于在对数尺度上均匀分布数据,例如音频频率分析或科学计算中的对数坐标图[^2]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值