numpy4.线性代数
numpy同时定义了ndarray和matrix,但推荐使用ndarray。
矩阵和向量积
矩阵的定义、加法、数乘、转置与二维数组完全一致,不再进行说明,但矩阵的乘法有不同的表示。
计算两矩阵积,若为一维数组则得到内积。
注意区分类型是ndarray还是matrix,两者 * 运算有区别
np.dot(a, b [, out] )
ndarray
# ndarray
a = np.arange(9).reshape(3, 3)
b = a.copy()
# 矩阵乘法
c = np.dot(a, b)
d = a @ b
# 元素相乘
e = a * b
f = np.multiply(a, b)
print(c)
print(d)
print(e)
print(f)
结果
[[ 15 18 21]
[ 42 54 66]
[ 69 90 111]]
[[ 15 18 21]
[ 42 54 66]
[ 69 90 111]]
[[ 0 1 4]
[ 9 16 25]
[36 49 64]]
[[ 0 1 4]
[ 9 16 25]
[36 49 64]]
matrix
# matrix
ma = np.mat(a)
mb = np.mat(b)
# 矩阵乘法
mc = np.dot(ma, mb)
md = ma @ mb
me = ma * mb
# 元素相乘
mf = np.multiply(ma, mb