numpy 數組的 Python 內存使用情況

| | | |

我正在使用 python 來分析一些大文件並且我遇到了內存問題,所以我一直在使用 sys.getsizeof() 來嘗試跟踪使用情況,但它是 numpy 數組的行為很奇怪。這是一個涉及我必須打開的反照率地圖的示例:

>>>將 numpy 導入為 np >>>導入結構>>> from sys import getsizeof >>> f = open("Albedo_map.assoc", "rb") >>> getsizeof(f) 144 >>> albedo = struct.unpack("%df" % (7200*3600), f.read(7200*3600*4)) >>> getsizeof(albedo) 207360056 >>> albedo = np.array(albedo).reshape(3600,7200) >>> getsizeof(albedo) 80 

數據還在那裡,但是對象的大小,一個 3600x7200 像素的地圖,已經從 ~200 Mb 變成了 80 字節。我想要希望我的記憶問題已經結束,只是將所有內容都轉換為 numpy 數組,但我覺得這種行為,如果是真的,會在某種程度上違反信息論或熱力學的某些定律,所以我傾向於相信getsizeof() 不適用於 numpy 數組。有什麼想法嗎?

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method