用于网格数据时间序列的最实用Python数据结构是什么?

2 投票
1 回答
1133 浏览
提问于 2025-04-18 00:39

我正在处理一组时间序列的网格数据:

'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))])

撰写回答