numpy+pandas 计算噪声特征序列

实战总结--[numpy+panumpyndas 计算噪声特征序列]

  • Welcome! - -[whisky带你学IT]- -公众号
    • 1.0 [项目实战] numpy+panumpyndas 计算噪声特征序列
      • Q1:
      • ANS:

Welcome! - -[whisky带你学IT]- -公众号

出入T圈小菜鸡,因工作需要学习了pandas numpy数据分析库,谨以此帖,记录经验。

1.0 [项目实战] numpy+panumpyndas 计算噪声特征序列

  • 1.1 Code process

numpy+pandas 计算噪声特征序列_第1张图片

Q1:

如下图所示,噪声特征幅度基本在01e13之间波动。请计算 data.npy数据中噪声特征幅度高于0.5e13所占比例,并按自然小 
时(0/1点……)统计该比例随时间的分布。

numpy+pandas 计算噪声特征序列_第2张图片

ANS:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from numpy.random import randn
df = np.load('data.npy')  #导入原始数据
data = pd.concat([pd.DataFrame(df[0]),pd.DataFrame(df[1])], axis=1)  #拼接arry 形成新的dataframe
data.columns = ['date', 'val']
data_hour = data.set_index('date')
data_hour.index = data_hour.index.to_period('h')  #形成小时线
data_hour.groupby(data_hour.index)
list = []    # 满足条件的数据条数【小时维度】
list_date = []   # 小时
for i in data_hour.groupby(data_hour.index):
    list.append(len(i[1][i[1].values>0.5e13]))
    list_date.append(i[1].index[0])

df_res = pd.DataFrame(list) / pd.DataFrame(data_hour.groupby(data_hour.index).count().values) # 计算比率
df_res.index = list_date
#------------------------
date = pd.DataFrame(list_date)
df_fin = pd.concat([date, df_res],axis=1)
df_fin .columns=['time', 'val']
#数据可视化
fig = plt.figure(figsize=(10, 4))
plt.plot(df_fin ['time'], df_fin ['val'])
plt.xticks(rotation=90)
plt.xlim(0, 24)
plt.show()





你可能感兴趣的:(pandas)