numpy数据平滑

数据平滑

是用来处理噪声数据,使数据变化较为平顺.可以使用移动平均线, 也可以使用hanning函数

Key_Function

np.hanning函数: 是一个加权余弦的窗函数, 相当于是余弦移动平均线

np.polysub函数: 输入两个多项式系数数组, 返回一个表示两个多项式差的多项式的系数数组

np.isreal函数: 判断数组元素是否是实数

np.select函数: 根据给定的条件, 从数组中挑选出符合条件的元素并组成数组返回

np.trim_zeros函数: 去掉一维数组中开头或末尾为0的元素

Code

import numpy as np
import matplotlib.pyplot as plt

N = 8
weights = np.hanning(N)
print(weights)
‘‘‘
[ 0.          0.1882551   0.61126047  0.95048443  0.95048443  0.61126047
  0.1882551   0.        ]
‘‘‘

# 本例使用的是收盘价
bhp = np.loadtxt(‘BHP.csv‘, delimiter=‘,‘, usecols=(6,), unpack=True)
bhp_returns = np.diff(bhp) / bhp[:-1]
print(len(bhp_returns))
# 29
smooth_bhp = np.convolve(weights/weights.sum(), bhp_returns)[N-1:-N+1]
# 使用归一化的weights作为权重
vale = np.loadtxt(‘VALE.csv‘, delimiter=‘,‘, usecols=(6,), unpack=True)
vale_returns = np.diff(vale) / vale[:-1]
smooth_vale = np.convolve(weights/weights.sum(), vale_returns)[N-1:-N+1]

t = np.arange(N-1, len(bhp_returns))
plt.plot(t, bhp_returns[N-1:], lw=1.0)
plt.plot(t, smooth_bhp, lw=3.0)
plt.plot(t, vale_returns[N-1:], lw=5.0)
plt.plot(t, smooth_vale, lw=7.0)
plt.show()

接上面代码

# 使用多项式拟合平滑后的数据
K = 8
t = np.arange(N-1, len(bhp_returns))
poly_bhp = np.polyfit(t, smooth_bhp, K)
poly_vale = np.polyfit(t, smooth_vale, K)

# 求解两条曲线的交叉点
# 通过求两个多项式的差, 然后对所得的多项式求根
poly_sub = np.polysub(poly_bhp, poly_vale)
xpoints = np.roots(poly_sub)
‘‘‘
[ 27.73321597+0.j          27.51284094+0.j          24.32064343+0.j
  18.86423973+0.j          12.43797190+1.73218179j  12.43797190-1.73218179j
   6.34613053+0.62519463j   6.34613053-0.62519463j]
‘‘‘

reals = np.isreal(xpoints)
print(reals)
# [ True  True  True  True False False False False]

xpoints = np.select([reals], [xpoints])
print(xpoints)
‘‘‘
[ 27.73321597+0.j  27.51284094+0.j  24.32064343+0.j  18.86423973+0.j
   0.00000000+0.j   0.00000000+0.j   0.00000000+0.j   0.00000000+0.j]
‘‘‘
xpoints = xpoints.real
print(xpoints)
‘‘‘
[ 27.73321597  27.51284094  24.32064343  18.86423973   0.           0.           0.
   0.        ]
‘‘‘

print(np.trim_zeros(xpoints))
# [ 27.73321597  27.51284094  24.32064343  18.86423973]

原文地址:https://www.cnblogs.com/draven123/p/11392070.html

时间: 2024-11-09 10:49:04

numpy数据平滑的相关文章

盘点一下数据平滑算法

在自然语言处理中,经常要计算单词序列(句子)出现的概率估计.我们知道,算法在训练时,语料库不可能包含所有可能出现的序列.  因此,为了防止对训练样本中未出现的新序列概率估计值为零,人们发明了好多改善估计新序列出现概率的算法,即数据平滑算法. Laplace 法则 最简单的算法是Laplace法则,思路很简单,统计测试数据集中的元素在训练数据集中出现的次数时,计数器的初始值不要设成零,而是设成1.这样,即使该元素没有在训练集中出现,其出现次数统计值至少也是1.因此,其出现的概率估计值就不会是零了.

Untiy中的数据平滑处理

本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50680237 作者:cartzhang 数据平滑处理 由于需要处理硬件的传给数据,硬件是其他商家的. 坑爹的是发送频率太低了,20HZ左右,也是服气了.好处有么,肯定是便宜. 这个用在VR游戏上,不做评论了. 既然这样,生活还得继续!!! 怎么办? 插值 第一考虑的就是插值. 插值,内插和外推插值.插值算法,有多种,5点,7

【整合】数据平滑

原文地址:关于数据平滑的一些理解作者:龙龙强 前段时间看论文时,论文里面采用了Kneser-Ney平滑算法对未登录词和稀有词进行了处理.看到这个陌生的名词,心里不由产生了几个问题,什么是平滑算法,它是干什么用的,什么是Kneser-Ney,它有什么特殊之处,利用平滑算法对于未登录词和稀有词处理后会产生什么样的效果.带着这些疑问,我阅读了宗成庆的<统计自然语言理解>和他的课件,看课件时感觉大概知道什么意思了,但是一看书,具体到公式,头都蒙了,发现原来这是一个非常有历史的研究领域,鉴于本人并不是具

数据分析与展示——NumPy数据存取与函数

NumPy库入门 NumPy数据存取和函数 数据的CSV文件存取 CSV文件 CSV(Comma-Separated Value,逗号分隔值)是一种常见的文件格式,用来存储批量数据. np.savetxt(frame,array,fmt='%.18e',delimiter=None) frame:文件.字符串或产生器,可以是.gz或.bz2的压缩文件. array:存入文件的数组. fmt:写入文件的格式,例如:%d %.2f %.18e. delimiter:分割字符串,默认是任何空格. 范例

python numpy数据相减

numpy数据相减,a和b两者shape要一样,然后是对应的位置相减.要不然,a的shape可以是(1,m),注意m要等于b的列数. import numpy as np a = [ [0, 1, 2] ] a = np.array(a) b = [ [1.0,1.1, 3], [1.0,1.0, 3], [0,0, 3], [0,0.1, 3] ] b = np.array(b) result = a - b print(result) 原文地址:https://www.cnblogs.com

Python数据分析与展示(1)-数据分析之表示(1)-NumPy数据存取与函数

NumPy数据存取与函数 数据的CSV文件存取 CSV文件 CSV(Comma-Separated Value,逗号分隔值) CSV是一种常见的文件格式,用来存储批量数据. 将数据写入CSV文件 np.savetxt(frame, array, fmt='%.18e', delimiter=None) -frame: 文件.字符串或产生器,可以是.gz或.bz2的压缩文件 -array: 存入文件的数组 -fmt: 写入文件的格式,例如:%d %.2f %.18e -delimiter:分割字符

100亿数据平滑数据迁移,不影响服务

架构师之路-100亿数据平滑数据迁移,不影响服务 原文地址:https://www.cnblogs.com/simplepure/p/10898427.html

数据分析与展示---Numpy数据存取与函数

简介 一:数据的CSV文件存取(一维或二维) (一)写入文件savetxt (二)读取文件loadtxt 二:多维数据的存取 (一)保存文件tofile (二)读取文件fromfile (三)NumPy 的便捷文件存取save/savez或load 三:NumPy的随机数函数(random模块) rand()均匀分布 randn()标准状态分布 randint()整数数组 seed()随机数种子 shuffle()根据数组第一轴产生一个新的乱序数组(在原数组基础) permutation()同上

NumPy数据存取与函数

一.数据的CSV文件存取 CSV文件: CSV(Comma-Separated Value,逗号分隔值) CSV是一种常见的文件格式,用来存储批量数据. 将数据写入CSV文件的方法是savetxt np.savetxt(frame,array,fmt='%.18e',delimiter=None) frame:文件.字符串或产生器,可以是.gz或.bz2的压缩文件. array:存入文件的数组. fmt:写入文件的格式,例如:%d %.2f %.18e(默认) delimiter:分割字符串,默