常用函數
4.add 上調用通用函數的方法
(1)對於add函數,其對數組的reduce計算結果等價於對數組元素求和。調用
reduce方法:
a = np.arange(9)
print("Reduce", np.add.reduce(a))
(2)accumulate方法同樣可以遞歸作用於輸入數組。但是與reduce方法不同的是,它將存儲運算的中間結果並返回。因此在add函數上調用accumulate方法,等價於直接調用cumsum函數。在add函數上調用accumulate方法:
print("Accumulate", np.add.accumulate(a))
print(np.cumsum(a))
(3)np.sum
np.sum(a, axis=None, dtype=None, out=None, )
axis的取值有三種情況:1.None,2.整數, 3.整數元組。
axis取None,即將數組/矩陣中的元素全部加起來,得到一個和
當axis為0時,是壓縮行,即將每一列的元素相加,將矩陣壓縮為一行
當axis為1時,是壓縮列,即將每一行的元素相加,將矩陣壓縮為一列
np.sum(c)
np.sum(c, axis=0)
np.sum(c, axis=1)
(4)cumprod所有元素的累計積
print(np.cumprod([1,2,3]))
(5)在數組的除法運算中涉及三個通用函數divide、true_divide和floor_division,以及兩個對應的運算符/和//。
· divide函數在整數和浮點數除法中均只保留整數部分
· true_divide函數不作截斷返回浮點數結果
· 而floor_divide函數同樣返回整數結果並等價於先調用divide函數再調用floor函數。
· divide函數在整數和浮點數除法中均只保留整數部分:
a = np.array([2, 6, 5])
b = np.array([1, 2, 3])
print "Divide", np.divide(a, b), np.divide(b, a)
· true_divide函數與數學中的除法定義更為接近,即返回除法的浮點數結果而不作截斷:
print "True Divide", np.true_divide(a, b), np.true_divide(b, a)
· floor_divide函數總是返回整數結果,相當於先調用divide函數再調用floor函數。floor函數將對浮點數進行向下取整並返回整數:
np.floor_divide(b, a) c = 3.14 * b
np.floor_divide(b, c)
· 使用/運算符相當於調用divide函數
· 運算符//對應於floor_divide函數
a = np.array([2, 6, 5])
b = np.array([1, 2, 3])
print(a+b)
print(a*b)
print(np.multiply(a,b))
print(a-b)
print(a/b)
print(a//b)
print("Divide", np.divide(a, b))
print("True Divide", np.true_divide(a, b))
print("floor_divide", np.floor_divide(a, b))
print(abs(-4.5))
print(np.sqrt(4))
print(np.square(4),np.square(a))
5.矩陣
(1)矩陣的乘法運算和NumPy中的普通乘法運算不同。冪運算當然也不一樣。我們可以使用mat、matrix以及bmat函數來創建矩陣。
· 在創建矩陣的專用字符串中,矩陣的行與行之間用分號隔開,行內的元素之間用空格隔開。使用如下的字符串調用mat函數創建矩陣:
A = np.mat('1 2 3; 4 5 6; 7 8 9')
· 用T屬性獲取轉置矩陣
print "transpose A", A.T
· 用I屬性獲取逆矩陣:
print "Inverse A", A.I
· NumPy數組進行創建
np.mat(np.arange(9).reshape(3, 3))
(2)從已有矩陣創建新矩陣:
利用一些已有的較小的矩陣來創建一個新的大矩陣。這可以用bmat函數來實現。這裡的b表示"分塊",bmat即分塊矩陣(block matrix)。
A = np.eye(2)
B = 2 * A
(3)創建複合矩陣
np.bmat("A B; A B")
閱讀更多 醫數思維雲課堂 的文章