Czy istnieje funkcja numpy, która powie mi, czy wartość jest typem liczbowym czy tablicą numpy? Piszę kod przetwarzania danych, który musi obsługiwać liczby w kilku różnych reprezentacjach (przez "numer" mam na myśli dowolną reprezentację liczby numerycznej, którą można manipulować przy użyciu standardowych operatorów arytmetycznych, +, -, *, /, * *).Identyfikowanie typów liczbowych i tablicowych w numpy
Niektóre przykłady zachowanie szukam
>>> 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
Jeżeli nie istnieje taka funkcja, wiem, że to nie powinno być trudne, aby napisać, coś
isinstance(n, (int, float, decimal.Decimal, numpy.number, numpy.ndarray))
ale są są inne typy liczbowe, które powinienem umieścić na liście?
Co powinno zwrócić 'is_numeric ([1,2,3])' i 'is_numeric ([1, '2', 3])'? – jfs
Fałsz w obu przypadkach. Zmienię to na pytanie. –
Co z 'numpy.array ([numpy.array ([1]), numpy.array ([2])])'? – jfs