Подтвердить что ты не робот

Эквивалент команды "whos" в Python Numpy

Я новичок в Numpy и пытаюсь найти функцию для перечисления переменных вместе с их размерами (как размерность матрицы, так и использование памяти), но не смог найти ее. Я в основном ищу эквивалент команды "whos" в MATLAB и Octave. Есть ли такая команда в Python Numpy?

Спасибо

4b9b3361

Ответ 1

Если вы используете 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/etc. Фернандо Перес и другие активно добавляют множество замечательных функций.

Ответ 2

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

Ответ 3

Команда

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)

Ответ 4

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

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