3
我们已经为单独的日子准备了一组数据 - 第一个属性是时间戳,其余是值。将numpy recarray(的一部分)转换为2d数组?
其中的几项:
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
我们想生产的每个值的平均值的数组(因为如果你打下都在彼此的顶部当天的数据,以及所有平均排列的值)。时间戳时间全都匹配,所以我们可以通过创建一个带有时间戳结果recarray做到这一点,和其他列全部为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)
这似乎是一个更好的办法是转换每天用一个数字去除数字(砍掉时间戳),然后在一个操作中对它们进行全部元素平均,但是我们无法找到一种方法来做到这一点 - 它总是一个1d的对象数组。
有谁知道如何做到这一点?
太好了,谢谢!作为一个整体,我仍然努力习惯于对数组进行处理 - 我的直觉是单独对元素进行处理。从我的测试中发现一个注意事项 - 虽然.view(np.float)部分没有制作副本,但花式切片确实如此。 – babbageclunk 2010-08-12 10:02:06
@Joe:如果我没有弄错,@wilberforce对于副本是正确的:'data [['a','b','c']] .base'为None,所以这意味着它拥有它的数据并不从'data'继承它。这是有道理的,因为这些字段通常不是连续的。如果您确认这一点,最好更新您的答案。 :) – EOL 2013-07-29 09:32:02
@EOL - 你是对的! (我不知道我当时在想什么......) – 2013-07-30 01:49:08