由於某種原因,我需要在我的python程序中有一個像10000x20000x4000x10這樣的維度的四維矩陣。正如我已經試圖使用Python中的普通數組來實現它,我發現它是不可能的,因爲我的受限制的可用系統資源。管理這種大數據結構的最佳方式是什麼?是使用數據庫的唯一方法嗎?在python中管理大數據結構
編輯:因爲它取決於我的目標是什麼,所以我將很快描述我在做什麼。我試圖將1維揹包問題擴展到4維。有2個矩陣保留和必須訪問的解決方案。當我嘗試解決這個這2點矩陣路由器的資源分配問題是這樣的:
keep = [[[[0 for x in xrange(CORE.cap + 1)*1000]for x in xrange(RAM.cap + 1)*1000]for x in xrange(NIC.cap + 1)*1000]for x in xrange(len(JOBS) + 1)]
solution = [[[[0 for x in xrange(CORE.cap + 1)*1000]for x in xrange(RAM.cap + 1)*1000]for x in xrange(NIC.cap + 1)*1000]for x in xrange(len(JOBS) + 1)]
有很多的這些矩陣0,我要訪問每次矩陣中的每一行。
它是一個稀疏矩陣(即只有一小部分的單元格填充)?如果是這樣,就有希望。否則,它可能太大了。 – ugoren
爲什麼你認爲你需要一個4D陣列?你真的想做什麼?有很多懶惰/窗口的大數據算法。 – doctorlove
我正在將揹包算法從一維擴展到4.這有點複雜,因爲我試圖用這種算法來解決路由器的資源分配問題。對於揹包的動態編程方法,我需要2個矩陣保留和解決方案。儘管這些矩陣中有很多零。如果你希望我可以執行你的源代碼。 –