0
我已經寫了一個cython函數使用numpy.array
在大數組上執行一些計算,例如數組的大小爲24000x1500
。然後我得到了MemoryError
。什麼是具有float64組件的二維數組的最終大小
我想知道什麼是Python中的float64
組件的二維數組的最終大小?
由於我的數組大小,是否發生此錯誤?
我該怎麼做才能避免這個錯誤?
我已經寫了一個cython函數使用numpy.array
在大數組上執行一些計算,例如數組的大小爲24000x1500
。然後我得到了MemoryError
。什麼是具有float64組件的二維數組的最終大小
我想知道什麼是Python中的float64
組件的二維數組的最終大小?
由於我的數組大小,是否發生此錯誤?
我該怎麼做才能避免這個錯誤?
由於64位浮點佔用8個字節,因此您可以輕鬆估計24,000 * 1500 * 8 = 288,000,000字節的下限,大約爲0.3 GB。我不知道由numpy數組創建的開銷,但我猜這對於數組的大小並不重要。
根據我在上面評論中鏈接到的答案,您還可以使用arr.numbytes
找到大小。它還返回數組元素使用的內存。
我可以看到如何使用這麼多的內存程序可以拋出MemoryError
。做一些記憶分析來發現它是否是你的大陣列(可能)或其他東西吃了你的記憶。或者購買更多的內存。
[numpy數組的Python內存使用情況]可能的重複(http://stackoverflow.com/questions/11784329/python-memory-usage-of-numpy-arrays) –
什麼是計算?涉及numpy數組的表達式可能會導致創建幾個臨時數組來保存中間結果。 –