NumPy來自數值範圍的陣列


NumPy - 來自數值範圍的陣列

這一章中,我們會學到如何從數值範圍建立陣列。

numpy.arange

這個函式返回ndarray物件,包含給定範圍內的等間隔值。

numpy.arange(start, stop, step, dtype)

構造器接受下列引數:

序號 引數及描述
1. start 範圍的起始值,預設為0
2. stop 範圍的終止值(不包含)
3. step 兩個值的間隔,預設為1
4. dtype 返回ndarray的資料型別,如果沒有提供,則會使用輸入資料的型別。

下面的例子展示了如何使用該函式:

範例 1

import numpy as np
x = np.arange(5)  
print x

輸出如下:

[0  1  2  3  4]

範例 2

import numpy as np
# 設定了 dtype
x = np.arange(5, dtype =  float)  
print x

輸出如下:

[0.  1.  2.  3.  4.]

範例 3

# 設定了起始值和終止值引數  
import numpy as np
x = np.arange(10,20,2)  
print x

輸出如下:

[10  12  14  16  18]

numpy.linspace

此函式類似於arange()函式。 在此函式中,指定了範圍之間的均勻間隔數量,而不是步長。 此函式的用法如下。

numpy.linspace(start, stop, num, endpoint, retstep, dtype)

構造器接受下列引數:

序號 引數及描述
1. start 序列的起始值
2. stop 序列的終止值,如果endpointtrue,該值包含於序列中
3. num 要生成的等間隔樣例數量,預設為50
4. endpoint 序列中是否包含stop值,預設為ture
5. retstep 如果為true,返回樣例,以及連續數位之間的步長
6. dtype 輸出ndarray的資料型別

下面的例子展示了linspace函式的用法。

範例 1

import numpy as np
x = np.linspace(10,20,5)  
print x

輸出如下:

[10.   12.5   15.   17.5  20.]

範例 2

# 將 endpoint 設為 false
import numpy as np
x = np.linspace(10,20,  5, endpoint =  False)  
print x

輸出如下:

[10.   12.   14.   16.   18.]

範例 3

# 輸出 retstep 值  
import numpy as np

x = np.linspace(1,2,5, retstep =  True)  
print x
# 這裡的 retstep 為 0.25

輸出如下:

(array([ 1.  ,  1.25,  1.5 ,  1.75,  2.  ]), 0.25)

numpy.logspace

此函式返回一個ndarray物件,其中包含在對數刻度上均勻分布的數位。 刻度的開始和結束端點是某個底數的冪,通常為 10。

numpy.logscale(start, stop, num, endpoint, base, dtype)

logspace函式的輸出由以下引數決定:

序號 引數及描述
1. start 起始值是base ** start
2. stop 終止值是base ** stop
3. num 範圍內的數值數量,預設為50
4. endpoint 如果為true,終止值包含在輸出陣列當中
5. base 對數空間的底數,預設為10
6. dtype 輸出陣列的資料型別,如果沒有提供,則取決於其它引數

下面的例子展示了logspace函式的用法。

範例 1

import numpy as np
# 預設底數是 10
a = np.logspace(1.0,  2.0, num =  10)  
print a

輸出如下:

[ 10.           12.91549665     16.68100537      21.5443469  27.82559402      
  35.93813664   46.41588834     59.94842503      77.42636827    100.    ]

範例 2

# 將對數空間的底數設定為 2  
import numpy as np
a = np.logspace(1,10,num =  10,  base  =  2)  
print a

輸出如下:

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