1. 程式人生 > >Python中使用numpy創建的array之間的乘法

Python中使用numpy創建的array之間的乘法

log strong 方式 依然 python array 變換 logs class

Python中使用numpy創建的array之間的乘法

import numpy as np

numpy模塊的array相乘時,有兩種方式:一是矩陣形式,二是挨個相乘。

需要用矩陣形式相乘時,則要用np.dot()函數。

矩陣與矩陣:

a = np.array([[1,2,3],[4,5,6],[7,8,9]])

c = a.copy()

a*c 得出的結果是a和c中每個元素依次相乘,為3x3的矩陣

np.dot(a, c) 得到的結果是a和c進行矩陣相乘,為3x3的矩陣

矩陣與向量:

a = np.array([[1,2,3],[4,5,6],[7,8,9]])

b = np.array([1,2,3])

a.shape #(3,3)

b.shape #(3,)

a*b # array([[1,4,9],[4,10,18],[7,16,27]]), a中的每一列的每個數與b中的每一列的每個數都相乘,即擴大a中每一列的倍數(相加時也是一樣)

b*a #這個結果與a*b是一樣的

b = b.T

b.shape # 即使對b轉置,b依然為(3,),b為行向量還是列向量時,是看具體用的時候在矩陣左邊還是右邊,會自動變換

np.dot(a, b) # array([14, 32, 50]),此時b當作一個3x1的列向量,得到的結果為(3,)

np.dot(b, a) # array([30, 36, 42]),此時b當作一個1x3的行向量,得到的結果為(3,)

Python中使用numpy創建的array之間的乘法

原文:http://www.cnblogs.com/Rambler1995/p/5581582.html

Python中使用numpy創建的array之間的乘法