NumPy中"whos"命令的等效功能
我刚接触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 和其他人正在不断添加很多很棒的功能。