【问题标题】:Python - How do I create a sliding window of columns in a text file?Python - 如何在文本文件中创建列的滑动窗口?
【发布时间】:2017-05-23 22:18:36
【问题描述】:

我有来自传感器数据的文本文件,例如加速度计和陀螺仪,例如:

% Accelerometer data recorded with 'snsrlog'
% 
% Sampling frequency: 100 Hz
% 
% Label description:
%    0: Default Label
%    1: pick up phone
% 
% Column description:
%    1: Seconds.milliseconds since 1970
%    2: Number of skipped measurements
%    3: Acceleration value in x-direction
%    4: Acceleration value in y-direction
%    5: Acceleration value in z-direction
%    6: Label used for the current sample
% 
% 
1495573445.162   0   0.021973    0.012283    -0.995468   1
1495573445.172   0   0.021072    0.013779    -0.994308   1
1495573445.182   0   0.020157    0.015717    -0.995575   1
1495573445.192   0   0.017883    0.012756    -0.993927   1
1495573445.202   0   0.021194    0.012161    -0.994705   1
1495573445.212   0   0.019638    0.013718    -0.994019   1
1495573445.222   0   0.019440    0.010803    -0.994476   1

文件中有更多内容。

我想为加速度计轴的每一列创建一个大小为 50 的滑动窗口,因为采样频率为 100Hz。我可以像这样打印出第一列的每一行:

def sliding_window(filename, stepSize, windowSize):
    with open(filename) as infile:
        for line in infile:
            print(line.split()[0])

但是,我不应该打印前 17 行,因为它们只是文本文件中的 cmets。我将如何制作这个滑动窗口?

【问题讨论】:

  • 糟糕。我不应该那样做的。我会编辑它。

标签: python text sliding-window


【解决方案1】:

添加startswith 条件:

if not line.startswith('%'):
    print(line.split()[0])

【讨论】:

  • 感谢您对 cme​​ts 的帮助。我仍然不确定如何只通过,比如每列中的前 x 个元素。
  • @dirtysocks45 line.split()[:x]
  • 对不起,我的意思是特定列中的前 x 个元素。不是前 x 列中的每个元素。
  • @dirtysocks45 哦,那么只需将0 更改为列号,在循环前设置一个计数器c = 0,并添加到条件and c < x,同时以c += 1 结束每一轮
猜你喜欢
  • 2017-01-16
  • 1970-01-01
  • 2020-04-10
  • 2015-02-05
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多