1. 程式人生 > >Python學習筆記----Numpy基礎(陣列物件的屬性及陣列建立)

Python學習筆記----Numpy基礎(陣列物件的屬性及陣列建立)

Numpy是Python的一種開源的數值計算擴充套件,這種工具可以用來儲存和處理大型矩陣,比Python自身的巢狀列表結構高效的多。

Numpy的主要物件是同構多維陣列(ndarray),它是一個元素表,所有元素都是相同的資料型別,由正整數元組索引。

下面列舉一些ndarray常用的屬性(以多維陣列物件text_ndarray = [[1, 2, 3], [3, 4, 5]]為例):

ndarray.ndim:陣列的軸數(陣列的維數);例如:text_ndarray.ndim = 2

ndarray.shape:陣列的大小,這是一個整數元組,表示每個維度中陣列的大小;例如:text_ndarray.shape = (2,3)

ndarray.dtype:描述陣列中元素型別的物件;例如:text_ndarray.dtype = int32

ndarray.itemsize:陣列中每個元素的大小(以位元組為單位);例如:text_ndarray.itemsize = 4

ndarray.data:包含陣列實際元素的緩衝區。通常我們不需要使用此屬性,因為我們將使用索引工具訪問陣列中的元素

下面是一些建立陣列的方法:

1、使用array函式從常規Python列表或者元組建立陣列(結果陣列的型別是從序列中元素的型別推匯出來的):

import numpy as np
a = np.array([2, 3, 4])

經常出現的錯誤在於array使用多個數字引數呼叫,而不是提供單個數字列表作為引數:

a = np.array(1, 2, 3, 4)         # wrong
a = np.array([1, 2, 3, 4])       # right

2、使用函式zeros建立一個所有元素都是0的陣列;使用函式ones建立一個所有元素都是1的陣列;使用函式empty建立一個其初始元素隨機的陣列(根據記憶體的狀態)&&(也可以指定所建立陣列元素的型別):

a = np.zeros((3, 4))
b = np.ones((2, 3, 4), dtype=np.int16)
c = np.empty((2, 3))

3、用arrange方法(arrange(start,end,step),不包含end):

np.arrange(10, 30, 5)
# 返回陣列:[10, 15, 20, 25]
np.arrange(0, 2, 0.3)
# 返回陣列:[0.0, 0.3, 0.6, 0.9, 1.2, 1.5, 1.8]

當arrange與浮點引數一起使用時,由於有限的浮點精度,通常無法獲得預測獲得的元素數量,因此介紹下面linspace方法

4、用linspace方法:

np.linspace(0, 2, 9)     # 從0到2的九個數字
# 返回值為:[0.0, 0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0]