小编Mic*_*wol的帖子

用于python的TSFRESH库处理时间太长

我偶然发现了TSfresh库,以期使时间序列数据趋于完美。该文档非常棒,似乎非常适合我正在从事的项目。

我想实现以下在TFresh文档的快速入门部分中共享的代码。而且看起来很简单。

from tsfresh import extract_relevant_features
feature_filtered_direct=extract_relevant_features(result,y,column_id=0,column_sort=1)
Run Code Online (Sandbox Code Playgroud)

我的数据包括40万行传感器数据,每个传感器有6个传感器,分别用于15个不同的ID。我开始运行代码,但是17个小时后它仍然没有完成。我认为这个数据集可能太大,无法通过相关的特征提取器运行,因此我将其缩减为3000,然后进一步缩减为300。这些动作都没有使代码在一个小时内运行,而我刚结束在一小时左右的等待后关闭它。我也尝试了标准特征提取器

extracted_features = extract_features(timeseries, column_id="id", column_sort="time")
Run Code Online (Sandbox Code Playgroud)

尝试TSfresh在其快速入门部分介绍的示例数据集。其中包括一个非常类似于我的原始数据的数据集,其中数据点的数量与我减少到的数据量大致相同。

有人对此代码有经验吗?您将如何使其更快地工作?我正在将Anaconda用于python 2.7。

更新 似乎与多处理有关。因为我在Windows上,所以使用多进程代码需要受到保护

if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

一旦我添加

if __name__ == "__main__":

    extracted_features = extract_features(timeseries, column_id="id", column_sort="time")
Run Code Online (Sandbox Code Playgroud)

对于我的代码,示例数据有效。在我自己的数据集上运行extract_relevant_features函数和运行extract features模块时,我仍然遇到一些问题。好像它继续缓慢运行。我也感觉到它也与多进程冻结有关,但是没有任何错误会弹出来,这是无法分辨的。我花了大约30分钟的时间来提取不到我数据集的1%的要素。

time time-series feature-extraction python-2.7

11
推荐指数
2
解决办法
3900
查看次数

如何在Python中链接多个命令行响应?

我一直在尝试在另一个python脚本中运行脚本而没有运气.

我试图运行的脚本是garminbackup.py,可以在以下repo中找到.

https://github.com/petergardfjall/garminexport

当您从命令行运行此脚本时,它会要求您提供一些信息,用户名,保存文件的位置等等...

command = 'python garminbackup.py --backup-dir=Name email --format tcx'
Run Code Online (Sandbox Code Playgroud)

然后它要求输入密码,一旦输入密码,就开始将garmin文件下载到提供的目录中.我的目标是创建一个程序,它循环遍历多个帐户并更新每个文件夹中的数据.

我的问题是我似乎无法在python中获得子进程模块来实现这一点.

我没有运气就尝试了以下命令.它似乎卡在输入密码输入屏幕上,并没有做任何其他事情.

import subprocess,shlex
from subprocess import PIPE,call
import os

p = subprocess.Popen(command,stdout=subprocess.PIPE,stdin=subprocess.PIPE,shell=True)
p.stdin.write("password\n")
p.wait()
Run Code Online (Sandbox Code Playgroud)

我搜索了几个小时,运气不好.任何帮助表示赞赏.

python shell command-line

6
推荐指数
1
解决办法
376
查看次数