python内积 卷积

内积就是点乘,卷积先取反。



import numpy as np

bb=[1,2]
cc=[2,3]

aa=np.dot(bb,cc)

print(aa)

dd= np.convolve([2,1],cc,'valid')
print(dd)

dd= np.convolve(bb,cc,'same')
print(dd)


dd= np.convolve(bb,cc,'full')
print(dd)

结果:

8
[8]
[2 7]
[2 7 6]

scipy的signal模块经常用于信号处理,卷积、傅里叶变换、各种滤波、差值算法等。 
*两个一维信号卷积

数组卷积的例子:

import scipy.signal
import numpy as np
x=np.array([1,2,3,4])
h=np.array([1,1,1])

bb= scipy.signal.convolve(x,h) #卷积运算
print(bb)

       卷积运算大致可以分成3步,首先先翻转,让两个信号列反过来,如上面就是1,2,3和6,5,4。然后作平移,6,5,4最开始在1,2,3的左边,没有重叠,现在向右移动,4和1就重叠了。对于重叠的部分,作乘积求和。也就是1x4得到第一个结果1,然后再移动后5x1+4x2得到第二个结果13以此类推。 

卷积运算可以用来做大整数的乘法(数组表示数的乘法),比如在上面的例子中,要求123乘以456,可以先得到它的卷积序列,然后从后往前,18将8保留,进位1给27;然后27变成28,把8保留进位2给28;然后28变成30,把0保留进位3给13;然后13变成16,把6保留进位1给4;4变成5即是最高位。也就是乘法的结果是56088。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI算法网奇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值