矩阵的点乘np.dot(数组1,数组2)或数组1.dot(数组2)
c=np.array([3,2,3])
b=np.array([3,2,3])
print(b.dot(c))
print(np.dot(b,c))
print(b*c) #只是对于位置的数据相乘
'''
[22]
[22]
[9 4 9]
'''
矩阵维度重新定义,数组.reshape(参1,参2)
将数组重新分配成参1*参2类型的数组,但注意的是这不是转置,将原来的数组转换成一维后直接排列成新的数组,下面的例子可以看出
c=np.array( [
[3,2,3],
[3,2,3],
])
print(c.reshape(3,2))
'''
[[3 2]
[3 3]
[2 3]]
'''
矩阵的转置,np.transpose(数组)或数组名.transpose()
该转置函数返回转置后的数组,但不改变原来的数组
c=np.array( [[3,2,3],
[3,2,3],])
print(c.transpose())
print(c.dot(np.transpose(c)))
print(c.dot(c.reshape(3,2)))
'''
[[3 3]
[2 2]
[3 3]] #转置
[[22 22] #转置点乘
[22 22]]
[[21 21] #使用reshape后的点乘
[21 21]]
'''
矩阵求逆,np.linalg.inv(数组名)
只有这一种形式
c=np.array( [[1,0],
[0,1],])
print(np.linalg.inv(c))
'''
[[1. 0.]
[0. 1.]]
'''
求解多项,np.linalg.solve(数组1,数组2)
第一个数组是参数,第二个数组是结果
# 3x+5y+6z=14
# 2x+4y+8z=14
# 8x+6y+5z=19
A=np.array([[3,5,6],[2,4,8],[8,6,5]])
b=np.array([[14],[14],[19]])
print(np.linalg.solve(A,b))
print('*'*10)
print(A.dot(np.linalg.solve(A,b)))
'''
[[1.]
[1.]
[1.]]
**********
[[14.]
[14.]
[19.]]
'''
取出对角线元素,np.diag(数组名)
只有这一种形式
c=np.array( [[1,0],
[0,1],])
print(np.diag(c))
#[1 1]