Существует ли существующая функция в numpy, которая сообщит мне, является ли значение числовым или массив numpy? Я пишу код обработки данных, который должен обрабатывать числа в нескольких разных представлениях (под "числом" я подразумеваю любое представление числовой величины, которое можно манипулировать с помощью стандартных арифметических операторов +, -, *,/, * *).
Некоторые примеры поведения, которое я ищу
>>> is_numeric(5)
True
>>> is_numeric(123.345)
True
>>> is_numeric('123.345')
False
>>> is_numeric(decimal.Decimal('123.345'))
True
>>> is_numeric(True)
False
>>> is_numeric([1, 2, 3])
False
>>> is_numeric([1, '2', 3])
False
>>> a = numpy.array([1, 2.3, 4.5, 6.7, 8.9])
>>> is_numeric(a)
True
>>> is_numeric(a[0])
True
>>> is_numeric(a[1])
True
>>> is_numeric(numpy.array([numpy.array([1]), numpy.array([2])])
True
>>> is_numeric(numpy.array(['1'])
False
Если такой функции нет, я знаю, что ее не должно быть сложно написать, например,
isinstance(n, (int, float, decimal.Decimal, numpy.number, numpy.ndarray))
но есть ли другие числовые типы, которые я должен включить в список?