我會在開頭提到這個問題前注意到我很樂意考慮pytables的替代方法,但我更願意使用pytables來從numexpr特性中受益。存儲碎片(可變長度)的數組對象w/pytables
我正在尋找一個解決方案來存儲/探索/分析我的數據,例如以下形式:假設我有許多Event
對象,代表某個時刻的某些實驗測量。每個Event
包含一些標量字段,以及一個變量數的Particle
對象,其中每個對象都包含一些標量字段。見下面我的「繪圖」。
我的第一個想法是將每個Event
作爲表中的一行。我知道pytables中有VLArray
類型,但它們似乎只能存儲基本數據類型。有沒有辦法用pytables存儲這些數據?
我還認爲每個Event
都是它自己的組,其中Particle
表包含可變數量的行。但是,我預計會有數百萬Events
,我希望能夠選擇事件並繪製某些字段,就像用表格中的行一樣。
如果用pytables無法做到這一點,有什麼替代解決方案?
+-------------------------+
+-------------------------+ |
+--------- Event ---------+ | |
| timestamp (int) | | |
| temperature (float) | | |
| latitude (float) | | |
| longitude (float) | | |
| ... [etc]... | | |
| | | |
| +-- Particle<1> --+ | | |
| | idx (int) | | | |
| | energy (float) | | | |
| | x (float) | | | |
| | y (float) | | | |
| | z (float) | | | |
| | ... [etc] ... | | | |
| +-----------------+ | | |
| ... | | |
| +-- Particle<N> --+ | | |
| | idx (int) | | | |
| | energy (float) | | | |
| | x (float) | | | |
| | y (float) | | | |
| | z (float) | | | |
| | ... [etc] ... | | | +
| +-----------------+ | +
+-------------------------+