python - 列出当前 Python 解释器中所有已知的 NumPy 数组

标签 python numpy garbage-collection

我想要一个当前由我的 Python 解释器管理的所有 numpy 数组的集合。以前的答案表明 gc.get_objects() 应该为我做这件事。但是我没有得到预期的结果:

In [1]: import numpy as np

In [2]: import gc

In [3]: x = np.ones(5)

In [4]: any(item is x for item in gc.get_objects())
Out[4]: False

有没有办法获取当前实例化的所有已知 NumPy 数组(或任何类型的对象)?

最佳答案

这不是一个完美的答案,但根据this stackoverflow post您可以使用locals()获取所有本地声明变量的字典。

然后,您可以使用简单的字典理解来获取所有已知的 NumPy 数组:

import numpy as np
np_arrays = {k:v for k,v in locals().items() if isinstance(v, np.ndarray)}

之后您可以按照自己喜欢的方式迭代字典。

关于python - 列出当前 Python 解释器中所有已知的 NumPy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37041957/

相关文章:

python - Numpy - 导入错误 : cannot import name _distributor_init

java - 发布类加载器引用失败

python - “符号”对象没有属性 'sin'

java - System.gc()什么时候做某事?

python - 清理重新匹配对象

python - 编译时检查以及主要脚本字节码存储在 Python 中的什么位置?

python - 带有可选字典键值的字符串格式

Python OpenGL向着色器发送数据

python - MS Access 关系问题

python - Pandas `isin` 函数的更快替代方案