标签:10 实现 arange a1 a3 数学 np numpy
数学中有很多种积,内积、外积、张量积、以及对应元素相乘
1. 内积
内积又叫标量积、数量级、点积、点乘,要求两个矩阵大小相等,定义:
a
⋅
b
=
∣
a
∣
∣
b
∣
cos
∠
(
a
,
b
)
a\cdot b=|a||b|\cos\angle(a, b)
a⋅b=∣a∣∣b∣cos∠(a,b)
程序实现:
import numpy as np
a = np.arange(10)
b = np.arange(10)
print(np.dot(a, b))
输出结果:
285 # (1+2*2+3*3+4*4+5*5+6*6+7*7+8*8+9*9)*cos(0) = 285
注意这里的结果是一个标量,没有方向。
2. 外积
外积有叫叉积,不要求两个矩阵大小相等,定义:
∣
a
×
b
∣
=
∣
a
∣
∣
b
∣
sin
∠
(
a
,
b
)
|a\times b| = |a||b|\sin\angle(a, b)
∣a×b∣=∣a∣∣b∣sin∠(a,b)
程序实现:
import numpy as np
a = np.arange(10)
b = np.arange(10)
print(np.outer(a, b))
输出结果:
0 # (1+2*2+3*3+4*4+5*5+6*6+7*7+8*8+9*9)*sin(0) = 0
注意这里结果是一个矢量,方向垂直于a与b组成的平面。
3. 张量积
张量积又叫克罗尼克积,不要求两个矩阵大小相等:
b
⊗
a
→
[
b
1
b
2
b
3
b
4
]
[
a
1
a
2
a
3
]
=
[
a
1
b
1
a
2
b
1
a
3
b
1
a
1
b
2
a
2
b
2
a
3
b
2
a
1
b
3
a
2
b
3
a
3
b
3
a
1
b
4
a
2
b
4
a
3
b
4
]
b\otimes a\rightarrow\left[ \begin{matrix} b_1 \\ b_2 \\ b_3 \\ b_4\\ \end{matrix} \right][a_1~~ a_2~~ a_3]=\left[ \begin{matrix} a_1b_1 & a_2b_1 & a_3b_1 \\ a_1b_2 & a_2b_2 & a_3b_2 \\ a_1b_3 & a_2b_3 & a_3b_3 \\ a_1b_4 & a_2b_4 & a_3b_4 \end{matrix} \right]
b⊗a→⎣⎢⎢⎡b1b2b3b4⎦⎥⎥⎤[a1 a2 a3]=⎣⎢⎢⎡a1b1a1b2a1b3a1b4a2b1a2b2a2b3a2b4a3b1a3b2a3b3a3b4⎦⎥⎥⎤
import numpy as np
a = np.arange(10)
b = np.arange(10)
print(np.kron(a, b))
输出结果:
[ 0 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 0 2 4 6
8 10 12 14 16 18 0 3 6 9 12 15 18 21 24 27 0 4 8 12 16 20 24 28
32 36 0 5 10 15 20 25 30 35 40 45 0 6 12 18 24 30 36 42 48 54 0 7
14 21 28 35 42 49 56 63 0 8 16 24 32 40 48 56 64 72 0 9 18 27 36 45
54 63 72 81]
4. 对应元素相乘
顾名思义,这要求矩阵的大小是一样的,不然会报错。
import numpy as np
a = np.arange(10)
b = np.arange(10)
print(a * b)
输出结果:
[ 0 1 4 9 16 25 36 49 64 81]
标签:10,实现,arange,a1,a3,数学,np,numpy 来源: https://blog.csdn.net/qq_28531269/article/details/121996551
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。