2011-10-15 15 views
13

Numpyが新しく、サイズ(行列の次元とメモリ使用量の両方)とともに変数をリストする関数を検索しようとしましたが、 。私は基本的にMATLABとOctaveの "whos"コマンドに相当するものを探しています。 Python Numpyにこのようなコマンドがありますか?あなたがIPythonを使用している場合Python Numpyの "whos"コマンドに相当する

おかげ

+1

注 ' help'コマンド(誰でもIDL-> pythonを検索する必要がある場合) – keflavich

答えて

19

、ビルトインwhosコマンドがあります:numpyの/ scipyのダウンロード/ matplotlibのにpythonでインタラクティブな仕事をしているとき、一般的に

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'> 

は、私は非常にIPythonを使用することをお勧めします/等。フェルナンド・ペレス(Fernando Perez)らは積極的に多くの優れた機能を追加しています。

+0

"whos"のような特定の変数名に "whos"を適用する方法はありますか? – Leo

5

Pythonには組み込み関数dir()があり、現在のローカルスコープ内の名前のリストを返します。

1

多かれ少なかれ同等のものとして機能します。インタラクティブシェルで

(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'] 
2

whosはコマンド印刷情報。私は、個人または変数のグループに関する情報を取得するには、次の関数を定義した:

import numpy as np 
def whosMy(*args): 
    sequentialTypes = [dict, list, tuple] 
    for var in args: 
    t=type(var) 
    if t== np.ndarray: 
     print type(var),var.dtype, var.shape 
    elif t in sequentialTypes: 
     print type(var), len(var) 
    else: 
     print type(var) 

使用方法:複数の変数のための

whosMy(var1) 

:これはIDLのに似ていること

whosMy(var1,var2,var3) 
関連する問題