Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在一个文件中存储不同长度的多个时间序列的有效方法_Python_Data Structures_Time Series - Fatal编程技术网

Python 在一个文件中存储不同长度的多个时间序列的有效方法

Python 在一个文件中存储不同长度的多个时间序列的有效方法,python,data-structures,time-series,Python,Data Structures,Time Series,我正在尝试找到可以用来存储和处理多个不同长度时间序列的最佳文件结构,例如: pitch_track_for_audio1, 105, 108, 96... (60 values) pitch_track_for_audio2, 125, 132, 94... (58 values) pitch_track_for_audio3, 115, 130, 99... (93 values) 其中,pitch_track_for_audio#是索引,其后的数字是与索引对应的时间序列 我看过pytho

我正在尝试找到可以用来存储和处理多个不同长度时间序列的最佳文件结构,例如:

pitch_track_for_audio1, 105, 108, 96... (60 values) 
pitch_track_for_audio2, 125, 132, 94... (58 values)
pitch_track_for_audio3, 115, 130, 99... (93 values)
其中,pitch_track_for_audio#是索引,其后的数字是与索引对应的时间序列

我看过python的pandas数据帧,但它希望每一行的大小都是一致的


我能想到的一种方法是将时间序列保存为字符串,这样我就可以将它存储在数据帧的一列中,并使用索引找到它所在的行,然后将其转换回一个序列进行处理。但我想知道是否有一种更有效的方法(在内存和速度方面)

简单的酸洗列表在您的情况下不起作用吗?您可以将整数转换为
uint8
或类似值,以获得一些空间。之后(取消勾选后)你想用它做什么?基本上我有一系列不同的算法,然后我可以应用到时间序列中,这个文件只是一种中间方式来存储数据,而无需重新处理音频文件。问题是,我可能有1000个音频文件,所以我在这个文件中有1000个时间序列行,所以我不想每次访问特定行时都要对列表进行pickle和unpickle。JSON/Dictionary很少让人失望。否则,您可以使用numpy数组或pandas数据帧,其中NaN填充在空位置。@kkawabat如果在处理数据时,内存中永远不需要多个时间序列,则绝对没有理由使用数据帧或JSON。最好的方法是缓存文件,并在需要时只处理相关数据。我的印象是,您需要同时使用所有数据,这就是我建议使用JSON/Dataframe的原因。积极的一面是,您可以一次处理所有数据,或者如果愿意,可以对其运行一个函数。@kkawabat如果您可以将所有数据放入堆内存中,这将是更快的方法,尽管此程序设计的可扩展性不是很强。如果你把所有数据都缓存在文件中,速度会慢一些,尽管它可以扩展到大量数据。简单的酸洗列表对你来说不管用吗?您可以将整数转换为
uint8
或类似值,以获得一些空间。之后(取消勾选后)你想用它做什么?基本上我有一系列不同的算法,然后我可以应用到时间序列中,这个文件只是一种中间方式来存储数据,而无需重新处理音频文件。问题是,我可能有1000个音频文件,所以我在这个文件中有1000个时间序列行,所以我不想每次访问特定行时都要对列表进行pickle和unpickle。JSON/Dictionary很少让人失望。否则,您可以使用numpy数组或pandas数据帧,其中NaN填充在空位置。@kkawabat如果在处理数据时,内存中永远不需要多个时间序列,则绝对没有理由使用数据帧或JSON。最好的方法是缓存文件,并在需要时只处理相关数据。我的印象是,您需要同时使用所有数据,这就是我建议使用JSON/Dataframe的原因。积极的一面是,您可以一次处理所有数据,或者如果愿意,可以对其运行一个函数。@kkawabat如果您可以将所有数据放入堆内存中,这将是更快的方法,尽管此程序设计的可扩展性不是很强。如果您将所有数据缓存在文件中,速度会变慢,尽管它可以扩展到大量数据。