Эквивалент команды "whos" в Python Numpy
Я новичок в Numpy и пытаюсь найти функцию для перечисления переменных вместе с их размерами (как размерность матрицы, так и использование памяти), но не смог найти ее. Я в основном ищу эквивалент команды "whos" в MATLAB и Octave. Есть ли такая команда в Python Numpy?
Спасибо
Ответы
Ответ 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']