Arrays 什么是跨时间压缩数据的好方法?
我有一个具有Arrays 什么是跨时间压缩数据的好方法?,arrays,algorithm,graph,analytics,Arrays,Algorithm,Graph,Analytics,我有一个具有time和value属性的对象数组。看起来像这样 更新:使用纪元时间而不是时间字符串的数据集 [{datetime:1383661634,value:43},{datetime:1383661856,value:40},{datetime:1383662133,value:23},{datetime:1383662944,value:23}] 阵列比这个大得多。可能是6位数的长度。我打算构建一个图来表示这个数组。由于明显的原因,我不能使用每一点数据来构建这个图(值与时间);因此,我需
time
和value
属性的对象数组。看起来像这样
更新:使用纪元时间而不是时间字符串的数据集
[{datetime:1383661634,value:43},{datetime:1383661856,value:40},{datetime:1383662133,value:23},{datetime:1383662944,value:23}]
阵列比这个大得多。可能是6位数的长度。我打算构建一个图来表示这个数组。由于明显的原因,我不能使用每一点数据来构建这个图(值与时间);因此,我需要将其随时间进行标准化
所以这里是主要的问题-这些对象的时间戳没有趋势;因此,我需要动态地选择时间段,在这些时间段中,我要么平均值,要么显示该时间段中对象的计数
如何计算用户友好的插槽。i、 e每分钟、每小时、每一天、每八小时左右。我希望阵列中最多有25个插槽,我在图中显示了这一点
我希望这有助于理解我的观点。这是JSON和日期时间作为文本传输的吗 为什么不将日期传输为long(Int64),并使用方法转换为DateTime或从DateTime转换?根据您可以使用的语言,这些实现包括:
仅此一项就可以节省大量空间,因为字符串是每个字符16位,长时间戳只有64位 您可以将日期/时间转换为历元,并使用
numpy.histogram
获取范围:
import random, numpy
l = [ random.randint(0, 1000) for x in range(1000) ]
num_items_bins, bin_ranges = numpy.histogram(l, 25)
print num_items_bins
print bin_ranges
给出:
[34 38 42 41 43 50 34 29 37 46 31 47 43 29 30 42 38 52 42 44 42 42 51 34 39]
[ 1. 40.96 80.92 120.88 160.84 200.8 240.76 280.72
320.68 360.64 400.6 440.56 480.52 520.48 560.44 600.4
640.36 680.32 720.28 760.24 800.2 840.16 880.12 920.08
960.04 1000. ]
如果不知道您的值的性质,很难说压缩值以供显示是一个您可以放弃什么和不能放弃什么的问题。但也有一些想法:
这是关于节省内存(字节)的问题还是关于以用户友好的方式显示值的问题?@HighPerformanceMark my bad。我已经手动拿出了一个演示数据集。@sled这是关于以用户友好的方式显示值的。要在图形上显示100000个值,我需要压缩时间刻度。我需要以用户友好的方式压缩这个时间尺度。mhh这只是一个快速的想法(不保证它会起作用):首先构建一个二叉树/排序树,然后从叶子开始,将叶子合并到包含多个项目的桶中,直到在叶子级别达到25个桶。然后,这些桶表示时间线上可能包含多个项目的点。非常类似于BTree。或者另一个想法,您可以尝试使用k-最近邻算法沿时间线构建集群。问题不在于日期时间转换。我有一个大纪元和我在一起。它更多的是在时间尺度上压缩100000个值,以使其更方便用户。问题不在于日期时间转换。我有一个大纪元和我在一起。它更多的是在时间尺度上压缩100000个值,以使其更加用户友好。也许我会用数据中的大纪元来更新这个问题。我不确定。我如何在我的数据上使用它。我需要在时间尺度上压缩。基本上,以分钟/天/小时等时段/时段显示结果。将柱状图应用于各个时段,稍后您可以将其转换为天、分钟。。。