Эквивалент команды "кто" в NumPy - PullRequest
18 голосов
/ 15 октября 2011

Я новичок в Numpy и пытаюсь найти функцию для перечисления переменных вместе с их размерами (как размерами матрицы, так и использованием памяти).

По сути, я ищу эквивалент команды "whos" в MATLAB и Octave.Существует ли такая команда в NumPy?

Ответы [ 4 ]

24 голосов
/ 15 октября 2011

Если вы используете 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'>

В общем, я настоятельно рекомендую использовать IPython при выполнении интерактивной работы в Python с NumPy/ SciPy / Matplotlib / и т.д..Фернандо Перес и другие активно добавляют много замечательных возможностей.

7 голосов
/ 15 октября 2011

Python имеет встроенную функцию dir(), которая возвращает список имен в текущей локальной области.

2 голосов
/ 25 января 2016
Команда

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)

для нескольких переменных:

 whosMy(var1,var2,var3)
2 голосов
/ 23 декабря 2012

Это более или менее работает как эквивалент.

В интерактивной оболочке (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'] 
...