# Numpy matrices必须是2维的
# 但是numpy arrays(ndarrays)可以是多维的(1D,2D,3D····ND)
# Matrix是Array的一个小的分支,包含于Array。所以matrix拥有array的所有特性
# matrix和array都可以通过objects后面加.T得到其转置。
# 但是matrix objects还可以在后面加.H f得到共轭矩阵, 加.I得到逆矩阵
# array的操作一般都是逐个元素的
import numpy as np
a = np.array([1, 2, 1])
b = np.array([1, 2, 2])
c_mat = np.mat('4 3;2 1')
d_mat = np.mat('1 2;3 4')
c_array = np.array([[4,3],[2,1]])
d_array = np.array([[1,2],[3,4]])
print(a*b)
# 元素相乘
# a*b = [1 4 2]
print(c_mat*d_mat)
# 矩阵相乘
# c_mat*d_mat = [[13 20]
# [ 5 8]]
print(c_array*d_array)
# 元素相乘
# c_array*d_array = [[4 6]
# [6 4]]
print(np.dot(c_array, d_array))
# 想要array实现矩阵相乘,则必须使用np.dot()
# np.dot(c_array, d_array) = [[13 20]
# [ 5 8]]
print( c_mat**2 )
# 返回c_mat*c_mat
# c_mat**2 = [[22 15]
# [10 7]]
print(c_array**2)
# 返回c_array中逐个元素求平方
# c_array**2 = [[16 9]
# [ 4 1]]
print(np.dot(a,b))
# 对于秩为1的数组,np.dot()执行对应位置相乘,然后再相加
# np.dot(a,b) = 7
# 对于np.multiply()来说,执行的都是逐个元素相乘
print(np.multiply(c_array, c_array))
# np.multiply(c_array, c_array) = [[16 9]
# [ 4 1]]
print(np.multiply(c_mat, c_mat))
# np.multiply(c_mat, c_mat) = [[16 9]
# [ 4 1]]
参考链接:
https://blog.csdn.net/zenghaitao0128/article/details/78715140?utm_source=blogxgwz0
https://blog.csdn.net/vincentlipan/article/details/20717163