numpy实现数学中的各种积

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

1. 内积

内积又叫标量积、数量级、点积、点乘,要求两个矩阵大小相等,定义:
a ⋅ b = ∣ a ∣ ∣ b ∣ cos ⁡ ∠ ( a , b ) a\cdot b=|a||b|\cos\angle(a, b) ab=abcos(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=absin(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] bab1b2b3b4[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]
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星空下0516

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值