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.]