Python numpy linspace和numpy logspace之间的输出差异
Numpy linspace返回指定间隔内的等距数字。Numpy logspace返回在对数刻度上均匀分布的数字 我不明白为什么numpy日志空间经常返回我设置的边界“超出范围”的值。取介于Python numpy linspace和numpy logspace之间的输出差异,python,arrays,numpy,Python,Arrays,Numpy,Numpy linspace返回指定间隔内的等距数字。Numpy logspace返回在对数刻度上均匀分布的数字 我不明白为什么numpy日志空间经常返回我设置的边界“超出范围”的值。取介于0.02和2.0之间的数字: import numpy as np print np.linspace(0.02, 2.0, num=20) print np.logspace(0.02, 2.0, num=20) 第一个的输出是: [ 0.02 0.12421053 0.22842105
0.02
和2.0
之间的数字:
import numpy as np
print np.linspace(0.02, 2.0, num=20)
print np.logspace(0.02, 2.0, num=20)
第一个的输出是:
[ 0.02 0.12421053 0.22842105 0.33263158 0.43684211 0.54105263
0.64526316 0.74947368 0.85368421 0.95789474 1.06210526 1.16631579
1.27052632 1.37473684 1.47894737 1.58315789 1.68736842 1.79157895
1.89578947 2. ]
这看起来是正确的。但是,np.logspace()
的输出错误:
[ 1.04712855 1.33109952 1.69208062 2.15095626 2.73427446
3.47578281 4.41838095 5.61660244 7.13976982 9.07600522
11.53732863 14.66613875 18.64345144 23.69937223 30.12640904
38.29639507 48.68200101 61.88408121 78.6664358 100. ]
为什么它将
1.047
输出到100.0
logspace
将其起点和终点分别计算为base**start
和base**stop
。可以指定base
值,但默认为10.0
例如,起始值为10**0.02==1.047
,停止值为10**2==100
您可以使用以下参数(使用np.log10
计算):
这很简单
NumPy为您提供在日志空间中均匀分布的数字
i、 e.10^(价值)。其中,值在开始值和停止值之间均匀分布
你会注意到10^0.02是1.04712。。。10^2是100-
numpy.logspace(开始、停止、num=50、endpoint=True、base=10.0、dtype=None)
返回在对数刻度上均匀分布的数字
在线性空间中,序列从基**开始(从基到基)
启动功率)并以基本**停止结束(见下文端点)
对于您的情况,base默认为10,因此它从10提升到0.02,再提升到10,再提升到2(100)。2017年更新:numpy 1.12包含一个函数,该函数完全符合原始问题的要求,即返回在日志空间中均匀采样的两个值之间的范围 功能是
谢谢…这正是我想要得到的从密集到稀疏的范围
>>> np.logspace(np.log10(0.02) , np.log10(2.0) , num=20)
array([ 0.02 , 0.0254855 , 0.03247553, 0.04138276, 0.05273302,
0.06719637, 0.08562665, 0.1091119 , 0.13903856, 0.17717336,
0.22576758, 0.28768998, 0.36659614, 0.46714429, 0.59527029,
0.75853804, 0.96658605, 1.23169642, 1.56951994, 2. ])
>>> np.geomspace(0.02, 2.0, 20)
array([ 0.02 , 0.0254855 , 0.03247553, 0.04138276, 0.05273302,
0.06719637, 0.08562665, 0.1091119 , 0.13903856, 0.17717336,
0.22576758, 0.28768998, 0.36659614, 0.46714429, 0.59527029,
0.75853804, 0.96658605, 1.23169642, 1.56951994, 2. ])