我正在寻找对人体加速度计数据进行特征提取以用于活动识别的方法。我的数据的采样率为100Hz。
我已经从各种来源研究了FFT是一种很适合使用的方法。我具有滑动窗口格式的数据,每个窗口的长度为256。我正在使用Python通过NumPy库执行此操作。我用来应用FFt的代码是:
import numpy as np
def fft_transform (window_data):
fft_data = []
fft_freq = []
power_spec = []
for window in window_data:
fft_window = np.fft.fft(window)
fft_data.append(fft_window)
freq = np.fft.fftfreq(np.array(window).shape[-1], d=0.01)
fft_freq.append(freq )
fft_ps = np.abs(fft_window)**2
power_spec.append(fft_ps)
return fft_data, fft_freq, power_spec
Run Code Online (Sandbox Code Playgroud)
这样给出的输出如下所示:
fft_data
array([ 2.92394828e+01 +0.00000000e+00j,
-6.00104665e-01 -7.57915977e+00j,
-1.02677676e+01 -1.55806119e+00j,
-7.17273995e-01 -6.64043705e+00j,
3.45758079e+01 +3.60869421e+01j,
etc..
Run Code Online (Sandbox Code Playgroud)
freq_data
array([ 0. , 0.390625, 0.78125 , 1.171875, 1.5625 , etc...
Run Code Online (Sandbox Code Playgroud)
功率谱
array([ 8.54947354e+02, 5.78037884e+01, 1.07854606e+02,
4.46098863e+01, 2.49775388e+03, etc...
Run Code Online (Sandbox Code Playgroud)
我还使用此代码绘制了结果-其中fst_ps是power_spectrum的第一个数组/窗口,而fst_freq是fft_freq数据的第一个窗口/数组。
import matplotlib.pyplot as plt
fig = …Run Code Online (Sandbox Code Playgroud) 我正在使用 Pandas DataFrames 并希望获取其中两个数据帧之间的平均值。我正在寻找具有相同名称的列之间的平均值。例如
df1
time x y z
0 1 1.25 2.5 0.75
1 2 2.75 2.5 3.00
2 3 1.50 2.5 1.25
3 4 3.00 2.5 3.50
4 5 0.50 2.5 2.25
Run Code Online (Sandbox Code Playgroud)
df2
time x y z
0 2 0.75 2.5 1.75
1 3 3.00 2.5 3.00
2 4 1.25 2.5 0.25
3 5 3.50 2.5 2.00
4 6 2.25 2.5 2.25
Run Code Online (Sandbox Code Playgroud)
我正在寻找的结果是
df3
time x y z
0 1 1.25 2.5 0.75
1 2 1.75 2.5 2.375 …Run Code Online (Sandbox Code Playgroud) 我正在使用看起来像这样的pandas DataFrame:
(** NB-偏移量设置为DataFrame的索引)
offset X Y Z
0 -0.140137 -1.924316 -0.426758
10 -2.789123 -1.111212 -0.416016
20 -0.133789 -1.923828 -4.408691
30 -0.101112 -1.457891 -0.425781
40 -0.126465 -1.926758 -0.414062
50 -0.137207 -1.916992 -0.404297
60 -0.130371 -3.784591 -0.987654
70 -0.125000 -1.918457 -0.403809
80 -0.123456 -1.917480 -0.413574
90 -0.126465 -1.926758 -0.333554
Run Code Online (Sandbox Code Playgroud)
我已使用以下代码将窗口大小= 5的滚动平均值应用于数据帧。我需要保持此窗口大小= 5,并且需要所有偏移值(无NaN)的整个数据帧的值。
df = df.rolling(center=False, window=5).mean()
Run Code Online (Sandbox Code Playgroud)
这给了我:
offset X Y Z
0.0 NaN NaN NaN
10.0 NaN NaN NaN
20.0 NaN NaN NaN
30.0 NaN NaN NaN
40.0 -0.658125 -1.668801 -1.218262 …Run Code Online (Sandbox Code Playgroud) 我是tensorflow的新手,我正在尝试重现网站上发布的实验https://github.com/jiegzhan/image-classification-rnn
我的TensorFlow版本是1.0.1,所以我稍微改变了他的代码.我使用的代码如下.
import os
import sys
import json
import time
import tensorflow as tf
from tensorflow.contrib.rnn.python.ops import rnn, rnn_cell
from tensorflow.examples.tutorials.mnist import input_data
n_input = 28 # MNIST data input (img shape: 28*28)
n_steps = 28 # timesteps
n_hidden = 128 # hidden layer num of features
n_classes = 10 # MNIST total classes (0-9 digits)
#coding:utf-8
def rnn_model(x, weights, biases):
"""RNN (LSTM or GRU) model for image"""
x = tf.transpose(x, [1, 0, 2])
x = tf.reshape(x, [-1, n_input]) …Run Code Online (Sandbox Code Playgroud)