NumPy(Numerical Python)是Python一個擴充庫。支持維度數組與矩陣運算,提供大量的數學函數庫。
ndarray類 :NumPy中的數組類被稱為ndarray
屬性:
ndarray.ndim表示數組的維度。
ndarray.shape是一個整型tuple,用來表示數組中的每個維度的大小。例如,一個n行和m列的矩陣,其shape為(n,m)。
ndarray.size表示數組中元素的個數,其值等於shape中所有整數的乘積
ndarray.dtype用來描述數組中元素的類型
ndarray.itemsize用於表示數組中每個元素的字節大小
import numpy as np a=np.arange(10).reshape(2,5) a array([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9]]) 注意:size=n*m 否則會報錯
a.shape (2, 5) a.ndim 2 a.size 10 a.dtype dtype('int32') a.itemsize 4
數組創建
直接使用list或者tuple
import numpy as np a = np.array([1,2,3,4,5,6]) b = np.array((1,2,3,4,5,6)) a array([1, 2, 3, 4, 5, 6]) b array([1, 2, 3, 4, 5, 6])
傳入的參數必須是同一結構,不是同一結構將發生轉換
NumPy還提供了便捷地創建特定數組的方式
a=np.zeros((3,3))
array([[0., 0., 0.], [0., 0., 0.], [0., 0., 0.]])
a=np.ones([2,4])
array([[1., 1., 1., 1.], [1., 1., 1., 1.]])
c = np.arange(15)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
e=np.arange(15).reshape(5,3)
array([[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11], [12, 13, 14]])
g = np.arange(0,15,3)
array([ 0, 3, 6, 9, 12])
h = np.arange(0,3,0.4)
array([0. , 0.4, 0.8, 1.2, 1.6, 2. , 2.4, 2.8])
數組的基本操作(加減乘除)
相對應的位置進行加減乘除,這一塊很簡單,就不多做介紹
在NumPy中,*
用於數組間元素對應的乘法,而不是矩陣乘法,矩陣乘法可以用dot()
方法來實現
a=np.array([[1,2],[4,5]]) b=np.array([[0,1],[0,1]]) a array([[1, 2], [4, 5]]) b array([[0, 1], [0, 1]]) a*b array([[0, 2], [0, 5]]) a.dot(b) array([[0, 3], [0, 9]])
矩陣乘積小結:
1. 只有當第一個矩陣的列數等於第二個矩陣的行數,兩個矩陣才能相乘
2.矩陣相乘不滿足交換律,AB!=BA
3.矩陣相乘不滿足消去率,例如:AB=AC 且A!=0 不能推出B=C
ndarray類實現了許多操作數組的一元方法,如求和、求最大值、求最小值等。
a = np.random.random((2,3))
求和:a.sum()
最小值:a.min()
最大值:a.max()
axis = 0表示列操作
axis = 1表示行操作