前言
N
u
m
P
y
NumPy
NumPy提供了线性代数函数库linalg
,该库包含了线性代数所需的所有功能,可以看看下面的说明。
函数 | 内容 |
---|---|
dot | 两数组的点积 |
vdot | 两向量的点积 |
inner | 两数组的内积 |
determinant | 数组的行列式 |
matmul | 两数组的矩阵积 |
inv | 求矩阵的逆 |
solve | 求解线性矩阵方程 |
相关函数介绍
numpy.dot()
:numpy.dot()
numpy.vdot
:numpy.vdot()
numpy.inner()
:numpy.inner()
numpy.determinant()
:numpy.determinant()
numpy.matmul()
:numpy.matmul()
numpy.inv()
:numpy.inv()
numpy.solve()
:numpy.solve()
numpy.dot()
- 对于两个数组(一维),计算的是这两个数组对应下标元素的乘积和(内积)
- 对于二维数组,计算的是两个数组的矩阵乘积
- 对于多维数组,结果数组中的每个元素都是:数组
a
的最后一维上的所有元素与数组b
的倒数第二维上的所有元素的乘积和: d o t ( a , b ) [ i , j , k , m ] = s u m ( a [ i , j , : ] ∗ b [ k , : , m ] ) dot(a, b)[i,j,k,m] = sum(a[i,j,:] * b[k,:,m]) dot(a,b)[i,j,k,m]=sum(a[i,j,:]∗b[k,:,m])
参数:np.dot(a,b,out=None)
a,b
:数组out
:可选,用于存储计算结果
import numpy as np
a=np.array([1,2,3,4])
b=np.array([1,2,3,4])
ans=np.dot(a,b)#1*1+2*2+3*3+4*4
print(ans)
30
a=np.array(([[1,2],[3,4]]))
b=np.array(([[1,2,3],[4,5,6]]))
ans=np.dot(a,b)#a.shape=(2,2),b.shape=(2,3),ans.shape(2,3) 即矩阵乘
print(ans)
[[ 9 12 15]
[19 26 33]]