[英]How can I handle large data in memory using python?
我有一個比我的 memory 大的數據集。 一般來說,我必須遍歷 350 個點,每個點是一個大小約為 80 Gb 的數據集。 通常我一次只處理一個文件來解決這個問題,但現在我正在執行一個需要我一次加載所有數據的計算。 我正在尋找有關如何解決此問題的建議。 已經閱讀了一些關於 dask 和 pyspark 的內容,但不確定我需要什么。 由於我正在對數據執行 PCA(主成分分析),因此無法將我的數據分成塊,因此我需要對整個數據執行計算,數據是速度場,而不是表格。 也許改變 memory 中數組的浮點格式可以工作或任何其他技巧來壓縮 memory 中的數組。 每個點的所有文件都是 pickle 格式,共有 3200 個文件,總共提供了大約 32 Tb 的數據。
我有 64 Gb 的 RAM 和一個 32 核的 CPU。
非常感謝有關此問題的任何指導。
通常,您可以為此使用數據生成器。 這允許您在不加載 memory 中的完整數據集的情況下使用數據集。
在實踐中,您可以使用 TensorFlow。 對於數據生成器,請使用:
tf.data.Dataset.from_generator
( https://www.tensorflow.org/api_docs/python/tf/data/Dataset#from_generator )
並應用 PCA: tft.pca
( https://www.tensorflow.org/tfx/transform/api_docs/python/tft/pca )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.