我是靠谱客的博主 大胆唇膏,这篇文章主要介绍numpy实现数学中的各种积,现在分享给大家,希望可以做个参考。

数学中有很多种积,内积、外积、张量积、以及对应元素相乘

1. 内积

内积又叫标量积、数量级、点积、点乘,要求两个矩阵大小相等,定义:
a ⋅ b = ∣ a ∣ ∣ b ∣ cos ⁡ ∠ ( a , b ) acdot b=|a||b|cosangle(a, b) ab=abcos(a,b)
程序实现:

复制代码
1
2
3
4
5
import numpy as np a = np.arange(10) b = np.arange(10) print(np.dot(a, b))

输出结果:

复制代码
1
2
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 ) |atimes b| = |a||b|sinangle(a, b) a×b=absin(a,b)
程序实现:

复制代码
1
2
3
4
5
import numpy as np a = np.arange(10) b = np.arange(10) print(np.outer(a, b))

输出结果:

复制代码
1
2
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 ] botimes arightarrowleft[ 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] bab1b2b3b4[a1  a2  a3]=a1b1a1b2a1b3a1b4a2b1a2b2a2b3a2b4a3b1a3b2a3b3a3b4

复制代码
1
2
3
4
5
import numpy as np a = np.arange(10) b = np.arange(10) print(np.kron(a, b))

输出结果:

复制代码
1
2
3
4
5
6
[ 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. 对应元素相乘

顾名思义,这要求矩阵的大小是一样的,不然会报错。

复制代码
1
2
3
4
5
import numpy as np a = np.arange(10) b = np.arange(10) print(a * b)

输出结果:

复制代码
1
2
[ 0 1 4 9 16 25 36 49 64 81]

最后

以上就是大胆唇膏最近收集整理的关于numpy实现数学中的各种积的全部内容,更多相关numpy实现数学中内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部