我们有一组关于各个日期的记录数据,其中第一个属性是时间戳,其余属性是数值。
其中几个为:
ts a b c
2010-08-06 08:00, 1.2, 3.4, 5.6
2010-08-06 08:05, 1.2, 3.4, 5.6
2010-08-06 08:10, 1.2, 3.4, 5.6
2010-08-06 08:15, 2.2, 3.3, 5.6
2010-08-06 08:20, 1.2, 3.4, 5.6
我们希望生成每个值的平均数组(就像您将所有日期数据叠放在一起,并对齐所有值进行平均一样)。时间戳时间全部匹配,因此我们可以通过创建一个带有时间戳和其他列全部为0的结果记录数组来完成,然后执行以下操作:
for day in day_data:
result.a += day.a
result.b += day.b
result.c += day.c
result.a /= len(day_data)
result.b /= len(day_data)
result.c /= len(day_data)
看起来更好的方法是将每天转换为一个只包含数字的二维数组(去掉时间戳),然后在一个操作中逐元素地对它们进行平均,但我们找不到这样做的方法——它总是一个对象的一维数组。
有谁知道如何做到这点吗?
data[['a','b','c']].base
为None,这意味着它拥有自己的数据,而不是从data
继承。这很有道理,因为这些字段通常不是连续的。如果你确认了这一点,更新你的答案会很好。 :) - Eric O. Lebigotdata[['a', 'b', 'c']]
的结构化数组索引将在未来版本的numpy中返回视图:https://github.com/numpy/numpy/pull/350/files。正如您所提到的,目前它并没有这样做,过去也没有。 - Joe Kington