我有一些非常大的矩陣(比方說百萬行的順序),我不能保留在內存中,我需要訪問此矩陣的子採樣在下降時間(不到一分鐘...)。 我開始尋找HDF5並結合numpy的和熊貓走出一條:指數萬用行快速訪問矩陣矩陣
但我發現它有點複雜,我不知道這是否是最好的解。
還有其他解決方案嗎?
感謝
編輯
這裏的那種我處理的數據的一些規範。
- 矩陣通常是稀疏(< 10%或非零細胞的< 25%)
- 矩陣是對稱
什麼,我需要做的是:
- 只讀訪問
- 提取矩形子矩陣(大部分沿着對角線,但也在外面)
我有一些非常大的矩陣(比方說百萬行的順序),我不能保留在內存中,我需要訪問此矩陣的子採樣在下降時間(不到一分鐘...)。 我開始尋找HDF5並結合numpy的和熊貓走出一條:指數萬用行快速訪問矩陣矩陣
但我發現它有點複雜,我不知道這是否是最好的解。
還有其他解決方案嗎?
感謝
編輯
這裏的那種我處理的數據的一些規範。
什麼,我需要做的是:
你試過PyTables嗎?對於非常大的矩陣它可能非常有用。看看this SO post。
你的問題在上下文中有點缺乏;但對於您描述的這些相對密集的矩陣,hdf5壓縮塊存儲可能與稀疏存儲格式一樣高效。在記憶中,如果付費,您總是可以將您的觀點轉換爲稀疏矩陣。這似乎是一個有效和簡單的解決方案;據我所知,沒有稀疏的矩陣格式可以很容易地從磁盤讀取。
如果您可以將主矩陣保留在內存中,爲何要查看基於磁盤的解決方案? – Daniel
對不起,我無法將它保留在內存中......我編輯問題 – fransua
您可以給我們關於您的數據集的更多信息,獲得有用答案的機會就越好。您的矩陣是否稀疏(大部分條目是否等於零或其他常量)?它是否還有其他我們應該瞭解的潛在有用屬性(例如對稱性)?你想如何索引它(例如整行/列,矩形子陣列,隨機行/列位置等)?它大部分是隻讀的,還是你經常需要修改條目? –