相关疑难解决方法(0)

可重用的库,以获得文件大小的人类可读版本?

Web上有各种片段,可以为您提供从字节大小返回人类可读大小的功能:

>>> human_readable(2048)
'2 kilobytes'
>>>
Run Code Online (Sandbox Code Playgroud)

但是有没有提供这个的Python库?

python filesize code-snippets

210
推荐指数
13
解决办法
9万
查看次数

如何知道python对象的字节大小,如数组和字典? - 简单的方法

我正在寻找一种简单的方法来了解数组和字典对象的字节大小,比如

[ [1,2,3], [4,5,6] ] or { 1:{2:2} }
Run Code Online (Sandbox Code Playgroud)

很多主题都说使用pylab,例如:

from pylab import *

A = array( [ [1,2,3], [4,5,6] ] )
A.nbytes
24
Run Code Online (Sandbox Code Playgroud)

但是,字典怎么样?我看到很多答案建议使用pysize或heapy.Torsten Marek在此链接中给出了一个简单的答案:建议使用哪种Python内存分析器?,但我对输出没有明确的解释,因为字节数不匹配.

Pysize似乎更复杂,我还没有明确如何使用它.

鉴于我想要执行的大小计算的简单性(没有类或复杂的结构),任何关于如何简单估计这种对象的内存使用量的想法?

亲切的问候.

python memory size byte object

44
推荐指数
4
解决办法
7万
查看次数

Jupyter Notebook 内存管理

我目前正在 kaggle 中开发 jupyter notebook。在我的 numpy 数组上执行所需的转换后,我对其进行了腌制,以便将其存储在磁盘上。我这样做的原因是我可以释放大数组消耗的内存。

酸洗阵列后消耗的内存约为 8.7 GB。

我决定运行此代码通过@扬GLX代码段中提供在这里,找出变量占用我的记忆:

import sys

def sizeof_fmt(num, suffix='B'):
    ''' by Fred Cirera,  /sf/answers/76645341/, modified'''
    for unit in ['','Ki','Mi','Gi','Ti','Pi','Ei','Zi']:
        if abs(num) < 1024.0:
            return "%3.1f %s%s" % (num, unit, suffix)
        num /= 1024.0
    return "%.1f %s%s" % (num, 'Yi', suffix)

for name, size in sorted(((name, sys.getsizeof(value)) for name, value in locals().items()),
                         key= lambda x: -x[1])[:10]:
    print("{:>30}: {:>8}".format(name, sizeof_fmt(size)))
Run Code Online (Sandbox Code Playgroud)

执行此步骤后,我注意到数组的大小为 3.3 gb,所有其他变量的大小加在一起约为 0.1 gb。

我决定通过执行以下操作来删除数组并查看是否可以解决问题:

del my_array
gc.collect()
Run Code Online (Sandbox Code Playgroud)

这样做之后,内存消耗从 8.7 GB 减少到 …

python numpy ipython jupyter jupyter-notebook

8
推荐指数
1
解决办法
1262
查看次数