本篇依然是数据分析里数据可视化方面的内容,主要内容有一维卷积、完全卷积、有效卷积、移动均线的绘制、布林带的绘制。
一、卷积运算
1、关于卷积
这里说到的卷积计算,是指我们对图像进行某种滤波处理或者是边缘检测、锐化等应用要用到的运算。通常,要进行卷积的话就必须要有一个模板(掩模),这些模板的实际就是在卷积计算是所用到的点乘系数。
2、卷积的运算
a = [1 2 3 4 5] # 被卷积数组
b = [6 7 8] # 卷积核数组
卷积运算:c = a (x) b
得到的卷积
完全卷积(full):[6 19 40 61 82 67 40]
同尾卷积(same):[19 40 61 82 67]
有效卷积(valid):[40 61 82]
3、在numpy中求卷积
- numpy.convolve(a, b, ‘full’/‘same’/‘valid’)
4、练习代码
import numpy as np
a = np.arange(1, 6)
b = np.arange(6, 9)
print('a:', a)
print('b:', b)
# 计算a与b的全full卷积
c_full = np.convolve(a, b, 'full')
print('c_full:', c_full)
# 计算a与b的同尾卷积
c_same = np.convolve(a, b, 'same')
print('c_same:', c_same)
# 计算a与b的有效卷积
c_valid = np.convolve(a, b, 'valid')
print('c_valid:', c_valid)
二、移动均线的绘制
1、何为移动均线
数据数组:[a b c d e]
权重数组:[A B C D E]
- 加权平均值:(aA+bB+cC+dD+eE)/(A+B+C+D+E)
记:S=(A+B+C+D+E) - 移动均线:[A/S B/S C/S D/S E/S]
2、绘制移动均线的步骤
1、获取数据并转换数据类型
2、设置窗口期
3、计算均线各点数据组成的数组
4、图像的基本设置
5、绘制移动均线
3、移动均线案例
import datetime as dt
import numpy as np
import matplotlib.pylab as mp
import matplotlib.dates as md
'''
1、获取数据并转换数据类型
'''
def dmy2ymd(dmy):
dmy = str(dmy, encoding='utf-8') # 转码dmy日期
date = dt.datetime.strptime(dmy, '%d-%m-%Y').date() # 获取时间对象
ymd = date.strftime('%Y-%m-%d')
return ymd
dates, closing_prices = np.loadtxt(
'0=数据源/beer_price.csv', delimiter=',',
usecols=(0, 4), unpack=True