numpy基础属性方法随机整理(六)--- 数组卷积 np.convolve(arr, 卷积核arr_core, 'valid'/'full'..)

卷积的原理理解:

目前还不是很理解

N=3
* * * (标*的为有效均值)
A B C D E F G
0 0 a b c d e 0 0
—— > [1/3 1/3 1/3]


  ------
     ------
         ------
            -------
                -------

D = (b+c+d)/3 = [b c d]x[1/3 1/3 1/3]

Point:
numpy.convolve(closing_prices, 卷积核, ‘valid‘)
卷积核 为权重数组的逆序数组
c = np.convolve(a, b[::-1], ‘full’) # 卷积后size

c = np.convolve(a, b, 'full')  #  卷积后size : 
c.size = a.size + b.size - 1

import os
import sys
import numpy as np

def main(argc, argv, envp):
    N = 5
    a = np.arange(1,11)
    b = np.ones(N) / N               # 权重b相等, 等权
    print(a,b, sep='\n')

    c = np.convolve(a, b, 'full')
    print('等权非逆序权重:', '\n',c)
    d = np.convolve(a,b[::-1], 'valid')  # 等权顺/逆序卷积相同
    print('等权逆序权重:', '\n',d)
    print()
    print(a.size, b.size, c.size, d.size, sep = ' | ')
    print()
    b_ = np.array([11,9,3,6,4]) / 15  # 权重b不相等,不等权
    d_ = np.convolve(a, b_, 'valid')
    print('非等权非逆序权重:', '\n', d_)
    d_ = np.convolve(a, b_[::-1], 'valid')   # 权重逆序 
    print('非等权逆序权重:', '\n', d_)

    return 0

if __name__ == '__main__':
    sys.exit(main(len(sys.argv),sys.argv,os.environ))

----------
output:
    [ 1  2  3  4  5  6  7  8  9 10]
    [ 0.2  0.2  0.2  0.2  0.2]
    等权非逆序权重: 
     [ 0.2  0.6  1.2  2.   3.   4.   5.   6.   7.   8.   6.8  5.4  3.8  2. ]
    等权逆序权重: 
     [ 3.  4.  5.  6.  7.  8.]

    10 | 5 | 14 | 6

    非等权非逆序权重: 
     [  7.73333333   9.93333333  12.13333333  14.33333333  16.53333333
      18.73333333]
    非等权逆序权重: 
     [  5.46666667   7.66666667   9.86666667  12.06666667  14.26666667
      16.46666667]
    [Finished in 1.1s]  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值