numpy中linspace用法

linspace的功能最初是从MATLAB中学来的,用此来创建等差数列。近期用Python的时候发现也有这个功能,提供相应功能的是numpy。关于MATLAB中的功能就不再进行赘述了,接下来把我可能用到的Python用法来简单做一个小节。


编写如下代码:


  1 #!/usr/bin/python

  2 

  3 import numpy as np

  4 

  5 x1 = np.linspace(1,10)

  6 x2 = np.linspace(1,10,10)

  7 print(x1)

  8 print(x2)

  9 print("length of x1 is %d" % len(x1))

 10 print("length of x2 is %d" % len(x2))

 11 


代码执行结果如下:


GreydeMac-mini:sport_365 greyzhang$ python linspace_demo.py 

[  1.           1.18367347   1.36734694   1.55102041   1.73469388

   1.91836735   2.10204082   2.28571429   2.46938776   2.65306122

   2.83673469   3.02040816   3.20408163   3.3877551    3.57142857

   3.75510204   3.93877551   4.12244898   4.30612245   4.48979592

   4.67346939   4.85714286   5.04081633   5.2244898    5.40816327

   5.59183673   5.7755102    5.95918367   6.14285714   6.32653061

   6.51020408   6.69387755   6.87755102   7.06122449   7.24489796

   7.42857143   7.6122449    7.79591837   7.97959184   8.16326531

   8.34693878   8.53061224   8.71428571   8.89795918   9.08163265

   9.26530612   9.44897959   9.63265306   9.81632653  10.        ]

[  1.   2.   3.   4.   5.   6.   7.   8.   9.  10.]

length of x1 is 50

length of x2 is 10

GreydeMac-mini:sport_365 greyzhang$ 


从上面的:结果可以看出,在默认情况下,linspace函数可以生成元素为50的等间隔数列。而前两个参数分别是数列的开头与结尾。如果写入第三个参数,可以制定数列的元素个数。其实,这种方式相对来说也有一点欠缺规范,更好方式是指明第三个参数需要设定的属性。如此,代码需要修改如下:

  1 #!/usr/bin/python

  2 

  3 import numpy as np

  4 

  5 x1 = np.linspace(1,10)

  6 x2 = np.linspace(1,10,num = 10)

  7 print(x1)

  8 print(x2)

  9 print("length of x1 is %d" % len(x1))

 10 print("length of x2 is %d" % len(x2))

 11 


上面这段代码的运行结果与前面一致:

GreydeMac-mini:sport_365 greyzhang$ python linspace_demo.py 

[  1.           1.18367347   1.36734694   1.55102041   1.73469388

   1.91836735   2.10204082   2.28571429   2.46938776   2.65306122

   2.83673469   3.02040816   3.20408163   3.3877551    3.57142857

   3.75510204   3.93877551   4.12244898   4.30612245   4.48979592

   4.67346939   4.85714286   5.04081633   5.2244898    5.40816327

   5.59183673   5.7755102    5.95918367   6.14285714   6.32653061

   6.51020408   6.69387755   6.87755102   7.06122449   7.24489796

   7.42857143   7.6122449    7.79591837   7.97959184   8.16326531

   8.34693878   8.53061224   8.71428571   8.89795918   9.08163265

   9.26530612   9.44897959   9.63265306   9.81632653  10.        ]

[  1.   2.   3.   4.   5.   6.   7.   8.   9.  10.]

length of x1 is 50

length of x2 is 10

GreydeMac-mini:sport_365 greyzhang$ 


其实,我个人使用的目前使用上面这些基本上就够了。不过,看了一下文档其实还有两个小功能值得注意一下。如果数列的元素个数指定,这两个参数属性也是可以选择性修改的。从文档中摘录如下:

endpoint : bool, optional

If True, stop is the last sample. Otherwise, it is not included. Default is True.

retstep : bool, optional

If True, return (samples, step), where step is the spacing between samples.


结束点如果现在为True,那么输入的第二个参数将会成为数列的最后一个元素,反之则不一定。而retstep会改变计算的输出,输出一个元组,而元组的两个元素分别是需要生成的数列和数列的步进差值。测试如下;

  1 #!/usr/bin/python

  2 

  3 import numpy as np

  4 

  5 x1 = np.linspace(1,10)

  6 x2 = np.linspace(1,10,num = 10,retstep = True)

  7 print(x1)

  8 print(x2)

  9 print("length of x1 is %d" % len(x1))

 10 print("length of x2 is %d" % len(x2))

 11 


运行结果如下:

GreydeMac-mini:sport_365 greyzhang$ python linspace_demo.py 

[  1.           1.18367347   1.36734694   1.55102041   1.73469388

   1.91836735   2.10204082   2.28571429   2.46938776   2.65306122

   2.83673469   3.02040816   3.20408163   3.3877551    3.57142857

   3.75510204   3.93877551   4.12244898   4.30612245   4.48979592

   4.67346939   4.85714286   5.04081633   5.2244898    5.40816327

   5.59183673   5.7755102    5.95918367   6.14285714   6.32653061

   6.51020408   6.69387755   6.87755102   7.06122449   7.24489796

   7.42857143   7.6122449    7.79591837   7.97959184   8.16326531

   8.34693878   8.53061224   8.71428571   8.89795918   9.08163265

   9.26530612   9.44897959   9.63265306   9.81632653  10.        ]

(array([  1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.,  10.]), 1.0)

length of x1 is 50

length of x2 is 2

GreydeMac-mini:sport_365 greyzhang$ 


从上面的结果中可以看到,设置了步进差值返回的x2,输出成了元组,而元组的第二个元素为步进差值1.0。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页