import numpy as np
a = np.arange(5)
attribute_list = [attribute for attribute in dir(a) if not callable(getattr(a, attribute))]
output: ['T', '__array_finalize__', '__array_interface__', '__array_priority__', '__array_struct__', '__doc__', '__hash__', 'base', 'ctypes', 'data', 'dtype', 'flags', 'flat', 'imag', 'itemsize', 'nbytes', 'ndim', 'real', 'shape', 'size', 'strides']
А если вы хотите избежать защищенных атрибутов:
attribute_list = [attribute for attribute in dir(a) if not callable(getattr(a, attribute)) and attribute[0] != '_']
output: ['T', 'base', 'ctypes', 'data', 'dtype', 'flags', 'flat', 'imag', 'itemsize', 'nbytes', 'ndim', 'real', 'shape', 'size', 'strides']