1. 程式人生 > >numpy中linspace用法

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。

相關推薦

numpylinspace用法

linspace的功能最初是從MATLAB中學來的,用此來建立等差數列。近期用Python的時候發現也有這個功能,提供相應功能的是numpy。關於MATLAB中的功能就不再進行贅述了,接下來把我可能用

NumpyArray用法總結

Numpy中array(陣列) Numpy主要物件是齊次多維陣列,由正整數元組索引,Numpy中維度稱為軸(axis),陣列的維數稱為秩(rank)。 可以參考:Numpy快速入門 1.1 建立陣列 常規方法建立陣列 import numpy as np #一維陣列

numpy一些常用函數的用法總結

num matrix 空白 記錄 維數 補充 結果 創建 array 先簡單記錄一下,後續補充詳細的例子 1. strip()函數 s.strip(rm):s為字符串,rm為要刪除的字符序列 只能刪除開頭或是結尾的字符或者字符串。不能刪除中間的字符或是字符串 當rm為空

numpynewaxis的用法

newaxis顧名思義就是插入新維度的意思,比如原來是一維數劇變成二維數劇,原來是二維變成三維, python將二維陣列變為三維陣列的舉例如下: x_data = np.linspace(-1,1,6) a=x_data.reshape((2,3)) c = a[:,np.newaxis,:

numpyflatten()函式用法

flatten是numpy.ndarray.flatten的一個函式,其官方文件是這樣描述的: ndarray.flatten(order='C') Return a copy of the array collapsed into one dimension. Parameters:

numpy:tile函式用法

tile函式位於python模組 numpy.lib.shape_base中,他的功能是重複某個陣列。比如tile(A,n),功能是將陣列A重複n次,構成一個新的陣列,我們還是使用具體的例子來說明問題 ①先來引入numpy下的所有方法 from numpy import *

Python雜談 | (四)NumPynp.c_和np.r_的用法

目錄 一、np.c_ 二、np.r_ 一、np.c_ np.c_[a,b,c...]可以拼接多個數組,要求待拼接的多個數組的行數必須相同: arr1=np.array([1,2,3]) print(arr1.shape) #(3,)代表arr1是一個包含3個元素的一維陣列

Python擴充套件庫numpywhere()函式的三種用法 Python擴充套件庫numpywhere()函式的三種用法

原 Python擴充套件庫numpy中where()函式的三種用法 2018年06月25日 07:43:56 Python_小屋 閱讀數:1000

numpy的norm用法

nan threshold cal use imp ive rev http blank   np.linalg.norm() computes the norm of a NumPy array according to an order, ord, which spec

PythonNumpy包的用法

一、陣列方法 建立陣列:arange()建立一維陣列;array()建立一維或多維陣列,其引數是類似於陣列的物件,如列表等 反過來轉換則可以使用numpy.ndarray.tolist()函式,如a.tolist() 建立陣列:np.zeros((2,3)),或者np.

Numpyargsort()函式的用法

argsort()函式的作用是將陣列按照從小到大的順序排序,並按照對應的索引值輸出。 argsort()函式中,當axis=0時,按列排列;當axis=1時,按行排列。如果省略預設按行排列。 下邊通過例子來說明其用法: #!/usr/bin/env python # -*- codi

Numpytile函式的用法

tile函式的功能是重複某個陣列,位於Numpy模組numpy.lib.shape_base中 下邊通過具體例子來說明tile函式的具體用法: 1、通過一個數字來說明重複的次數 #!/usr/bin/env python # -*- coding:utf-8 -*- from numpy

Pythonnumpy.clip();numpy.fabs()的用法;以及math.pow()的說明

在看一些關於關於資料分析的Python程式碼時,時常會出現一些方法不懂其意思,今天做個小小的說明關於:python中numpy.clip()方法的運用、numpy.fabs()方法運用法以及math.p

numpy的nonzero()的用法

       nonzero(a)返回陣列a中值不為零的元素的下標,它的返回值是一個長度為a.ndim(陣列a的軸數)的元組,元組的每個元素都是一個整數陣列,其值為非零元素的下標在對應軸上的值。例如對

numpystack的用法直觀理解

首先生成一些數, import numpy as np a = np.arange(1, 7).reshape((2, 3)) b = np.arange(7, 13).reshape((2, 3)

[Python]numpytile函式的用法

1.函式的定義與說明 tile函式是模板numpy.lib.shape_base中的函式。 函式的形式是tile(A,reps) 函式引數說明中提到A和reps都是array_like的,什麼是array_like的parameter呢?在網上查了一下,始終搞不明白,便把熟

Python之陣列(array)使用方法總結與Numpy的陣列用法

Python: array使用方法: Type code C Type Minimum size in bytes ‘c’ character          1

numpyloadtxt 的用法

numpy中有兩個函式可以用來讀取檔案,主要是txt檔案, 下面主要來介紹這兩個函式的用法 第一個是loadtxt, 其一般用法為 numpy.loadtxt(fname, dtype=, comments='#', delimiter=None, converter

Numpy tile函式的用法

titl函式: a=arange(1,3) #a的結果是: array([1,2]) 1,當 tile(a,1) 時: tile(a,1) #結果是 array([1,2]) tile(a,2) #結果是 array([1,2,1,2]) tile(a,3)

numpy的where用法

numpy.where函式是三元表示式x if condition else y的向量化版本。定義一個布林陣列和兩個值陣列: >>> xarr=np.array([1.1,1.2,1