我有一组具有time
和value
属性的对象。看起来像这样。
UPDATE:数据集,包含纪元时间而非时间字符串
[{datetime:1383661634, value: 43},{datetime:1383661856, value: 40}, {datetime:1383662133, value: 23}, {datetime:1383662944, value: 23}]
阵列远大于此。可能是6位数的长度。我打算构建一个图表来表示这个数组。由于显而易见的原因,我无法使用每一位数据来构建此图(值与时间的关系);所以我需要在一段时间内将其标准化。
所以这是主要问题 - 这些对象的时间戳没有趋势;所以我需要动态选择时间槽,我可以在其中平均值或显示该槽中对象的数量。
如何计算用户友好的插槽。即每分钟,每小时,每天,八小时左右。我期待从阵列中完成最多25个插槽,我将在图表中显示。
我希望这有助于说明我的观点。
答案 0 :(得分:1)
您可以将日期/时间转换为纪元,并使用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. ]
答案 1 :(得分:1)
很难说不知道你的价值观的本质,压缩显示价值是你可以放弃的东西和你不能放弃的东西。但有些想法:
答案 2 :(得分:0)
这个JSON和DateTimes是以文本形式传输的吗?
为什么不将Date作为long(Int64)传输,并使用方法转换为DateTime?根据您可以使用这些实现的语言:
仅此一项就可以为您节省大量空间,因为字符串每个字符为16位,而长TimeStamp只有64位。