天天看點

NumPy 從數值範圍建立數組

這一章節我們将學習如何從數值範圍建立數組。

numpy 包中的使用 arange 函數建立數值範圍并傳回 ndarray 對象,函數格式如下:

根據 start 與 stop 指定的範圍以及 step 設定的步長,生成一個 ndarray。

參數說明:

參數

描述

<code>start</code>

起始值,預設為<code>0</code>

<code>stop</code>

終止值(不包含)

<code>step</code>

步長,預設為<code>1</code>

<code>dtype</code>

傳回<code>ndarray</code>的資料類型,如果沒有提供,則會使用輸入資料的類型。

生成 0 到 5 的數組:

import numpy as np

x = np.arange(5)

print (x)

輸出結果如下:

設定傳回類型位 float:

# 設定了 dtype

x = np.arange(5, dtype = float)

設定了起始值、終止值及步長:

x = np.arange(10,20,2)

numpy.linspace 函數用于建立一個一維數組,數組是一個等差數列構成的,格式如下:

序列的起始值

序列的終止值,如果<code>endpoint</code>為<code>true</code>,該值包含于數列中

<code>num</code>

要生成的等步長的樣本數量,預設為<code>50</code>

<code>endpoint</code>

該值為 <code>true</code> 時,數列中包含<code>stop</code>值,反之不包含,預設是True。

<code>retstep</code>

如果為 True 時,生成的數組中會顯示間距,反之不顯示。

<code>ndarray</code> 的資料類型

以下執行個體用到三個參數,設定起始點為 1 ,終止點為 10,數列個數為 10。

a = np.linspace(1,10,10)

print(a)

輸出結果為:

設定元素全部是1的等差數列:

a = np.linspace(1,1,10)

将 endpoint 設為 false,不包含終止值:

a = np.linspace(10, 20, 5, endpoint = False)

如果将 endpoint 設為 true,則會包含 20。

以下執行個體設定間距。

a =np.linspace(1,10,10,retstep= True)

# 拓展例子

b =np.linspace(1,10,10).reshape([10,1])

print(b)

numpy.logspace 函數用于建立一個于等比數列。格式如下:

base 參數意思是取對數的時候 log 的下标。

序列的起始值為:base ** start

序列的終止值為:base ** stop。如果<code>endpoint</code>為<code>true</code>,該值包含于數列中

該值為 <code>true</code> 時,數列中中包含<code>stop</code>值,反之不包含,預設是True。

<code>base</code>

對數 log 的底數。

# 預設底數是 10

a = np.logspace(1.0, 2.0, num = 10)

print (a)

将對數的底數設定為 2 :

a = np.logspace(0,9,10,base=2)

輸出如下: