一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第16天,点击查看活动详情。
前言
提供了线性代数函数库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的倒数第二维上的所有元素的乘积和:
参数: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]]
numpy.vdot()
numpy.vdot()函数是两个向量的点积。
- 如果第一个参数是复数,那么它的共轭复数会用于计算
- 如果参数是多维数组,它会被展开。
import numpy as np
a=np.array([1,2,3,4])
b=np.array([1,2,3,4])
ans=np.vdot(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]]))
ans=np.vdot(a,b)# a展开为[1,2,3,4],b展开为[1,2,3,4]
print(ans)
30
numpy.inner()
numpy.inner()函数返回一维数组的向量内积。
- 如果对于更高的维度,它返回最后一个轴上的和的乘积
import numpy as np
ans=np.inner(np.array([1,2,3,4]),np.array([1,2,3,4]))
print(ans)#[1,2,3,4].[1,2,3,4]
30
a=np.array(([[1,2],[3,4]]))
b=np.array(([[11,12],[13,14]]))
ans=np.inner(a,b)
print('内积:')
print(ans)
内积:
[[35 41]
[81 95]]
计算公式:
,
,