¿Existe una función existente en numpy que me diga si un valor es un tipo numérico o una matriz numpy? Estoy escribiendo un código de procesamiento de datos que necesita para manejar números en varias representaciones diferentes (por "número" me refiero a cualquier representación de una cantidad numérica que puede ser manipulado utilizando los operadores aritméticos estándar, +, -, *, /, * *).La identificación de los tipos numéricos y matriz en numpy
Algunos ejemplos del comportamiento Estoy buscando
>>> 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
Si no existe tal función, ya sé que no debería ser difícil de escribir uno, algo así como
isinstance(n, (int, float, decimal.Decimal, numpy.number, numpy.ndarray))
pero son Hay otros tipos numéricos que debo incluir en la lista?
¿Qué debería devolver 'is_numeric ([1,2,3])' y 'is_numeric ([1, '2', 3])'? – jfs
Falso en ambos casos. Voy a editar eso en la pregunta. –
¿Qué pasa con 'numpy.array ([numpy.array ([1]), numpy.array ([2])])'? – jfs