从给定另一个值的数组中选择条目

2024-04-29 00:52:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件的格式(日期,时间,电阻):

12/11/2013  13:20:38    28.321930E+3
...         ...             ...

我需要在第一次输入数据后每隔6秒提取电阻值(第三列)。首先,我想使用以下方法导入文本文件:

date, time, resistance = loadtxt('Thermometers.txt', unpack=True, usecols=[0,1,2])

然而,在我几乎还没有开始我的程序之前,我得到了一个错误:

ValueError: invalid literal for float(): 12/11/2013

-同时-

我不知道如何在时间中迭代,因为日期会随着数据的运行而改变。我的问题的优雅的解决方案将不胜感激。你知道吗


Tags: 数据方法txttruedatetime格式时间
2条回答

如果出于其他原因而坚持使用numpy,您可能需要一个look at this。你知道吗

我想这段代码可以做你想做的事。而且,您不必担心隔夜数据和更改日期,因为这会将其转换为datetime对象。你知道吗

    import datetime

    filtered_data=[]

    my_data=open(my_file,'r')
    for line in my_data:

        data_arr=line.split()
        dte=data_arr[0].split("/") r
        tme=data_arr[1].split(":") 
        new_date=datetime.datetime((int(dte[2]),int(dte[0]),int(dte[1]),
                                    int(tme[0]),int(tme[1]),int(tme[2]))

        if filtered_data==[]:
           filtered_data.append(data_arr)

        else:
           if (new_date-old_date).seconds==6:
                filtered_data.append(data_arr)

        old_date=new_date

这将为您提供一个列表,其中项目将根据您的情况进行筛选(每6秒一次)。现在,如果你只需要以6秒间隔分布的电阻阵列,使用下面的简单循环或列表理解就足够了:

R_in_six_sec_interval=[R[2] for R in filtered_data]

相关问题 更多 >