2.數據挖掘——房價項目預測(二)NumPy庫學習

目錄

NumPy的對象-ndarray

創建一個numpy對象

NumPy數組屬性

numpy.empty

numpy.ones&&numpy.zeros

numpy.asarray

numpy.arange

 numpy.linspace

numpy.logspace

NumPy 運算


NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。NumPy 通常與 SciPy(Scientific Python)和 Matplotlib(繪圖庫)一起使用, 這種組合廣泛用於替代 MatLab,是一個強大的科學計算環境,有助於我們通過 Python 學習數據科學或者機器學習。

NumPy的對象-ndarray

NumPy 最重要的一個特點是其 N 維數組對象 ndarray,它是一系列同類型數據的集合,以 0 下標爲開始進行集合中元素的索引。 ndarray 對象是用於存放同類型元素的多維數組(矩陣)。 ndarray 中的每個元素在內存中都有相同存儲大小的區域。

ndarray 內部由以下內容組成:

  • 一個指向數據(內存或內存映射文件中的一塊數據)的指針。
  • 數據類型或 dtype,描述在數組中的固定大小值的格子。
  • 一個表示數組形狀(shape)的元組,表示各維度大小的元組。
  • 一個跨度元組(stride),其中的整數指的是爲了前進到當前維度下一個元素需要"跨過"的字節數。

創建一個numpy對象

創建一個 ndarray 只需調用 NumPy 的 array 函數即可

numpy.array(object,dtype=None,copy=True,order=None,subok=False,ndmin=0)
參數 說明
object     數組或嵌套的數列
dtype     數組元素的數據類型,可選
copy     對象是否需要複製,可選
order     創建數組的樣式,C爲行方向,F爲列方向,A爲任意方向(默認)
subok     默認返回一個與基類類型一致的數組
ndmin    指定生成數組的最小維度

實例:

 numpy 支持的數據類型比 Python 內置的類型要多很多,基本上可以和 C 語言的數據類型對應上,其中部分類型對應爲 Python 內置的類型。常用 NumPy 基本類型如下:

名稱  描述
bool_ 布爾型數據類型(True 或者 False)
int_ 默認的整數類型(類似於 C 語言中的 long,int32 或 int64)
intc 與 C 的 int 類型一樣,一般是 int32 或 int 64
intp 用於索引的整數類型(類似於 C 的 ssize_t,一般情況下仍然是 int32 或 int64)
int8 字節(-128 to 127)
int16 整數(-32768 to 32767)
int32 整數(-2147483648 to 2147483647)
int64 整數(-9223372036854775808 to 9223372036854775807)

NumPy數組屬性

NumPy 數組的維數稱爲秩(rank),秩就是軸的數量,即數組的維度,一維數組的秩爲 1,二維數組的秩爲 2,以此類推。 在 NumPy中,每一個線性的數組稱爲是一個軸(axis),也就是維度(dimensions)。 很多時候可以聲明 axis。axis=0,表示沿着第 0 軸進行操作,即對每一列進行操作;axis=1,表示沿着第1軸進行操作,即對每一行進行操作。

具體的屬性說明如下表:

屬性 說明
ndarray.ndim 秩,即軸的數量或維度的數量
ndarray.shape 數組的維度,對於矩陣,n 行 m 列
ndarray.size 數組元素的總個數,相當於 .shape 中 n*m 的值
ndarray.dtype ndarray 對象的元素類型
ndarray.itemsize ndarray 對象中每個元素的大小,以字節爲單位
ndarray.flags ndarray 對象的內存信息
ndarray.real ndarray元素的實部
ndarray.imag ndarray 元素的虛部
ndarray.data 包含實際數組元素的緩衝區,由於一般通過數組的索引獲取元素,所以通常不需要使用這個屬性。

實例:

numpy.empty

numpy.empty 方法用來創建一個指定形狀(shape)、數據類型(dtype)且未初始化的數組:

numpy.empty(shape, dtype = float, order = 'C')
參數 描述
shape 數組形狀
dtype 數據類型,可選
order 有"C"和"F"兩個選項,分別代表,行優先和列優先,在計算機內存中的存儲元素的順序。

numpy.ones&&numpy.zeros

創建指定形狀的數組,數組元素以 1 來填充:

numpy.ones(shape, dtype = None, order = 'C')

 創建指定大小的數組,數組元素以 0 來填充:

numpy.zeros(shape, dtype = float, order = 'C')

 

參數 描述
shape 數組形狀
dtype 數據類型,可選
order 'C' 用於 C 的行數組,或者 'F' 用於 FORTRAN 的列數組

 實例:

numpy.asarray

numpy.asarray 類似 numpy.array,但 numpy.asarray 參數只有三個,比 numpy.array 少兩個。

numpy.asarray(a, dtype = None, order = None)
參數 描述
a 任意形式的輸入參數,可以是,列表, 列表的元組, 元組, 元組的元組, 元組的列表,多維數組
dtype 數據類型,可選
order 可選,有"C"和"F"兩個選項,分別代表,行優先和列優先,在計算機內存中的存儲元素的順序

numpy.arange

numpy 包中的使用 arange 函數創建數值範圍並返回 ndarray 對象,函數格式如下:

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

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

參數 描述
start 起始值,默認爲0
stop 終止值(不包含)
step 步長,默認爲1
dtype 返回ndarray的數據類型,如果沒有提供,則會使用輸入數據的類型。

 numpy.linspace

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

np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

 

參數 描述
start 序列的起始值
stop 序列的終止值,如果endpointtrue,該值包含於數列中
num 要生成的等步長的樣本數量,默認爲50
endpoint 該值爲 true 時,數列中包含stop值,反之不包含,默認是True。
retstep 如果爲 True 時,生成的數組中會顯示間距,反之不顯示。
dtype ndarray 的數據類型

numpy.logspace

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

np.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None)
參數 描述
start 序列的起始值爲:base ** start
stop 序列的終止值爲:base ** stop。如果endpointtrue,該值包含於數列中
num 要生成的等步長的樣本數量,默認爲50
endpoint 該值爲 true 時,數列中中包含stop值,反之不包含,默認是True。
base 對數 log 的底數。
dtype ndarray 的數據類型

 實例:

NumPy 運算

加減乘除:add()subtract()multiply() 和 divide()

實例

a = np.arange(9, dtype = np.float_).reshape(3,3)  
print ('第一個數組:')
print (a)
print ('第二個數組:')
b = np.array([10,10,10])  
print (b)
print ('兩個數組相加:')
print (np.add(a,b))
print ('兩個數組相減:')
print (np.subtract(a,b))
print ('兩個數組相乘:')
print (np.multiply(a,b))
print ('兩個數組相除:')
print (np.divide(a,b))

numpy.amin() 和 numpy.amax()

numpy.amin() 用於計算數組中的元素沿指定軸的最小值。

numpy.amax() 用於計算數組中的元素沿指定軸的最大值。

numpy.median()

numpy.median() 函數用於計算數組 a 中元素的中位數(中值)

numpy.mean()和numpy.average()

numpy.mean() 函數返回數組中元素的算術平均值。

numpy.average() 函數根據在另一個數組中給出的各自的權重計算數組中元素的加權平均值。

numpy.sort()

numpy.sort() 函數返回輸入數組的排序副本。函數格式如下:

numpy.sort(a, axis, kind, order)
  • axis: 沿着它排序數組的軸,如果沒有數組會被展開,沿着最後的軸排序, axis=0 按列排序,axis=1 按行排序
  • kind: 默認爲'quicksort'(快速排序)
  • order: 如果數組包含字段,則是要排序的字段

實例:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章