簡體   English   中英

numpy.core._exceptions.MemoryError:無法為數組分配空間

[英]numpy.core._exceptions.MemoryError: Unable to allocate space for array

錯誤

numpy.core._exceptions.MemoryError: Unable to allocate 362. GiB for an array with shape (2700000, 18000) and data type float64

https://www.kaggle.com/datasets.netflix-inc.netflix-prize-data

我正在處理 this.netflix 獎品數據集,其中有很多電影和用戶 ID 我的工作是應用矩陣分解,所以我需要創建一個 2700000 X 18000 的矩陣,它將 int 存儲在 1 到 5 的范圍內 我嘗試了很多方法但仍然無法創建那個大小的矩陣試圖強制它是 uint8 但我得到的矩陣的形狀是錯誤的請幫我解決這個問題

您的 300 萬乘 20000 矩陣最好是稀疏的,否則您將需要一台具有大量 memory 的計算機。一個完整的真實矩陣副本需要幾百 GB 甚至幾 TB 的連續空間。

  1. 利用更有效的矩陣表示,例如稀疏矩陣 scipy.sparse.csc_matrix。 問題是矩陣是否有大部分 0 分數。
  2. 修改您的算法以處理子矩陣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM