NumPy中"whos"命令的等效功能

22 投票
5 回答
25170 浏览
提问于 2025-04-17 04:21

我刚接触Numpy,想找一个函数来列出变量的信息,包括它们的大小(也就是矩阵的维度和占用的内存)。

我其实是在寻找一个类似于MATLAB和Octave中的“whos”命令的东西。Numpy中有没有这样的命令呢?

5 个回答

2

这基本上可以看作是 who 命令的等价物。

在交互式命令行(IDLE)中

>> import os
>> import sys
>> a = 10
>> def MyWho():
       print [v for v in globals().keys() if not v.startswith('_')]
>> MyWho()
['a', 'MyWho', 'sys', 'os']
>> import numpy
>> MyWho()
['a', 'MyWho', 'numpy', 'sys', 'os'] 
8

Python 有一个内置的函数 dir(),它可以返回当前作用域内的所有名字的列表。

29

如果你在使用 IPython,里面有一个内置的命令叫做 whos

In [9]: whos
Variable   Type       Data/Info
-------------------------------
a          ndarray    4x4x3: 48 elems, type `int64`, 384 bytes
b          ndarray    100000: 100000 elems, type `int64`, 800000 bytes (781 kb)
np         module     <module 'numpy' from '/Li<...>kages/numpy/__init__.py'>

总的来说,我非常推荐在使用 Python 进行交互式工作时,特别是用到 numpy、scipy、matplotlib 等库时,使用 IPython。Fernando Perez 和其他人正在不断添加很多很棒的功能。

撰写回答