#python #numpy
Подскажите, есть ли какая-нибудь функция, которая позволяет узнать, сколько места
в памяти занимает матрица или массив numpy?
Ответы
Ответ 1
Можно воспользоваться методом nbytes: In [5]: a = np.random.rand(10**6) In [6]: a.nbytes Out[6]: 8000000 In [7]: a.dtype Out[7]: dtype('float64') это работает и для многомерных матриц: In [11]: a = np.random.randint(0, 10, (10**3, 10**3, 10**3), dtype=np.int8) In [12]: a.shape Out[12]: (1000, 1000, 1000) In [13]: a.nbytes Out[13]: 1000000000 In [14]: a.dtype Out[14]: dtype('int8') также можно воспользоваться стандартной функцией: sys.getsizeof() In [33]: a = np.random.rand(10**6) In [34]: sys.getsizeof(a) Out[34]: 8000096 которая вызовет __sizeof__ для вызываемого объекта: In [35]: a.__sizeof__() Out[35]: 8000096 Из документации: getsizeof() calls the object’s __ sizeof __ method and adds an additional garbage collector overhead if the object is managed by the garbage collector.
Комментариев нет:
Отправить комментарий