日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python多维数据存储_在Python中存储和重新加载大型多维数据集

發布時間:2025/3/15 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python多维数据存储_在Python中存储和重新加载大型多维数据集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我將運行大量的模擬,產生大量的數據,這些數據需要在以后存儲和訪問。我的模擬程序的輸出數據被寫入文本文件(每個模擬一個)。我計劃編寫一個Python程序來讀取這些文本文件,然后以更便于以后分析的格式存儲數據。經過一段時間的搜索,我想我正遭受信息過載的困擾,所以我把這個問題放到堆棧溢出中尋求一些建議。具體情況如下:

我的數據基本上采用多維數組的形式,其中每個條目都將如下所示:data[ stringArg1, stringArg2, stringArg3, stringArg4, intArg1 ] = [ floatResult01, floatResult02, ..., floatResult12 ]

每個參數的潛在值大致如下:

字符串arg1:50

字符串arg2:20

字符串arg3:6

字符串arg4:24

圖1:10000

但是請注意,數據集是稀疏的。例如,對于給定的stringArg1值,將只填充stringArg2的大約16個值。另外,對于給定的(stringArg1,stringArg2)組合,將填充大約5000個intArg1值。第3個和第4個字符串參數總是完全填充。在

因此,使用這些數字,我的數組將有大約50*16*6*24*5000=576000000個結果列表。在

我正在尋找存儲這個數組的最佳方法,這樣我就可以保存它并在以后重新打開它,以添加更多數據、更新現有數據或查詢現有數據以進行分析。到目前為止,我已經研究了三種不同的方法:關系數據庫

PyTables

使用元組作為字典鍵的Python字典(使用pickle保存和重新加載)

在這三種方法中我都會遇到一個問題,我總是將(stringArg1、stringArg2、stringArg3、stringArg4、intArg1)的每個元組組合存儲為表中的字段,或作為Python字典中的鍵。從我(可能是天真的)的觀點來看,這似乎沒有必要。如果這些都是整型參數,那么它們只會形成數組中每個數據項的地址,就不需要在單獨的字段中存儲所有可能的地址組合。例如,如果我有一個2x2數組=[[100,200],[300,400]],你可以通過在地址數組[0][1]上請求值來檢索值。您不需要將所有可能的地址元組(0,0)(0,1)(1,0)(1,1)存儲到其他地方。所以我希望能找到一個解決這個問題的辦法。在

我希望能夠在PyTables中定義一個表,其中第一個表中的單元格包含其他表。例如,頂級表將有兩列。第一列中的條目將是stringArg1的可能值。第二列中的每個條目都是一個表。這些子表將有兩列,第一列是stringArg2的所有可能值,第二列是子表的另一列。。。在

這種解決方案將很容易瀏覽和查詢(尤其是如果我可以使用vitalables來瀏覽數據)。問題是PyTables似乎不支持一個表的單元格包含其他表。所以我似乎在那里遇到了一個死胡同。在

我已經閱讀了數據倉庫和星型模式方法,但事實表似乎仍然需要包含每個可能的參數組合的元組。在

好吧,那就是我現在的處境。任何和所有的建議將不勝感激。在這一點上,我一直在四處尋找,以至于我的大腦受傷了。是時候請專家們想想了。在

總結

以上是生活随笔為你收集整理的python多维数据存储_在Python中存储和重新加载大型多维数据集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。