关于np.logspace()生成等比序列个数的思考

np.logspace(start, stop, base, num)用于生成一个等比序列,其中,

  • base:基底,默认为10,就是左下角的数字, 3 2 = 9 3^2 = 9 32=9
  • start:表示开始的阶次,就是右上角那个小小的数字, 3 2 = 9 3^2 = 9 32=9
  • end:表示结束的阶次,也同样是右上角的那个数字
  • num:等比数列的元素个数,默认为50

比如我想要生成一个从 2 0 到 2 10 2^0 到2^{10} 20210 也即1到1024的等比序列

# 创建等比数列
import numpy as np

# 因为默认基底是10,但是我们需要的是2,所以需要指定base=2
arr1 = np.logspace(start=0,stop=10,base=2)
# 修改打印输出设置为数字显示,而不是科学计数法
np.set_printoptions(suppress = True)
print(arr1)

输出结果如下:

[   1.            1.15195282    1.3269953     1.52863599    1.76091654
    2.02849277    2.33672798    2.69180039    3.10082705    3.57200647
    4.11478293    4.74003581    5.46029763    6.29000526    7.24578931
    8.34680745    9.61512839   11.07617429   12.75923023   14.69803127
   16.93143859   19.50421847   22.4679395    25.88200631   29.81485021
   34.34530084   39.56416622   45.57605293   52.50146278   60.47920821
   69.66919457   80.25562529   92.45069403  106.49883788  122.68163683
  141.32345775  162.79795596  187.53556478  216.03212307  248.85881381
  286.67361283  330.23447729  380.41453802  438.21960059  504.80830554
  581.51535211  669.87825088  771.66814147  888.92529319 1024.        ]

看到结果的时候人都傻了,为什么是这个输出呢?
我们去理解上面这个程序的意思,生成一个从2到1024的等比序列,但是由于没有指定num参数,程序不知道应该输出多少个数据的等比序列,于是采用默认值50,如果要使得输出正确,添加一个num=11即可.(因为从0到10一共11个数)

import numpy as np

arr1 = np.logspace(start=0,stop=10,base=2,num=11)
# 修改打印输出设置为数字显示,而不是科学计数法
np.set_printoptions(suppress = True)
print(arr1)

输出结果如下:

[   1.    2.    4.    8.   16.   32.   64.  128.  256.  512. 1024.]

参考内容:numpy官方文档
关于np.logspace()生成等比序列个数的思考_第1张图片

你可能感兴趣的:(numpy,numpy,python,机器学习)