用于网格数据时间序列的最实用Python数据结构是什么?
我正在处理一组时间序列的网格数据:
'2014-01-01'
0 1 1 0 0 1
0 1 1 0 1 1
1 1 1 0 0 1
0 1 0 0 0 1
0 1 1 0 1 1
'2014-01-02'
0 1 0 0 0 1
0 1 1 0 1 1
1 0 1 0 1 1
0 1 0 0 0 1
1 1 1 0 1 0
等等...
我之前使用的是三维的numpy数组,但我对把第三维作为datetime
对象来处理不太满意,所以我想试试用pandas
的时间序列来处理这些数据。
在python
中处理这种数据有没有什么公认的最佳实践呢?
更新:
我上面用1和0来简化问题,但我的数据其实是不同类型的值,分布在一个地理空间网格(WGS84经纬度)上,随着时间变化。
我希望能够在整个网格或网格的某个切片上(通过网格索引)对一段时间内的数据进行计算。pandas
的时间序列很不错,因为它结合了datetime
对象的优点(可以使用.month
、.year
等方法)和datetime64
的简单性(比如可以直接写数据.date=1995)。
1 个回答
1
也许使用一个结构化数组(或者叫记录数组)会更符合你的需求:
举个例子,如果n
是你需要的条目数量,并且假设你的数字数组是布尔类型的:
n=1
np.zeros(n, dtype=[('date','|S10'),('data','b1',(5,6))])